0

I am trying the following sample code. Even though my textviews are updated in a similar manner. on seekbar.setProgress(45) it throws a null pointer exception as if it havent found the seekbar.. any idea why? all the textviews and seekbar are initialized in onCreateView and onStart in similar way. Other than that seekbar listener is called appropriately ontouch drag etc..

public class HomeMenuFragment extends Fragment {

    TextView tvHomeMenuText;
    TextView tvHomeMenuTextUnit;
    ImageButton btnHomeMenu;
    public SeekBar menuSeek;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        final View v = inflater.inflate(R.layout.fragment_home, container, false);

        menuSeek = (SeekBar) v.findViewById(R.id.sbHomeMenu);
        tvHomeMenuText = (TextView) v.findViewById(R.id.tvHomeMenuText);
        tvHomeMenuTextUnit = (TextView) v.findViewById(R.id.tvHomeManuTextUnit);
        btnHomeMenu = (ImageButton) v.findViewById(R.id.btnHomeMenu);

        return v;
    }

    @Override
    public void onStart() {
        super.onStart();


        /* Set Typeface */
        AssetManager am = getActivity().getAssets();
        Typeface typeface = Typeface.createFromAsset(am, String.format(Locale.US, "fonts/%s", "century_gothic_bold.ttf"));
        tvHomeMenuText.setTypeface(typeface);
        tvHomeMenuTextUnit.setTypeface(typeface);

        menuSeek.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {

            int translatedProgress;

            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean b) {
                    translatedProgress = progress + 60;
                    tvHomeMenuText.setText(Integer.toString(translatedProgress));
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {


                        tvHomeMenuText.setText(Integer.toString(translatedProgress));

                             }

        });

        menuSeek.setProgress(75);


        final Handler handler = new Handler();

        handler.post(new Runnable() {
            @Override
            public void run() {

                tvHomeMenuText.setText("--");
                tvHomeMenuTextUnit.setText("--");
                menuSeek.setProgress(45);

                // upadte textView here
                handler.postDelayed(this, 500); // set time here to refresh textView

            }
        });
    }


    @Override
    public void onResume() {
        super.onResume();
    }


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        return false;
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        getActivity().getMenuInflater().inflate(R.menu.main, menu);
        super.onCreateOptionsMenu(menu, inflater);
    }
}
ruben
  • 1,745
  • 5
  • 25
  • 47

0 Answers0