0

I am trying to check if the seekbar has value less than 0. Currently my seekbar has value between 0-9.

seekbar1 = (SeekBar)findViewById(R.id.sb);
seekbar1.setOnSeekBarChangeListener( new OnSeekBarChangeListener(){

    @Override
    public void onProgressChanged(SeekBar arg0, int progress, boolean arg2) {
        // TODO Auto-generated method stub

        tv.setText("" + progress);

    }

String str = tv.getText().toString();
int number = Integer.parseInt(str);

if(number >= 0){

// do something }

How can I check if number is less than 0? I tried doing if(number < 0) but it crashes. Thanks

 if(number >= 0){

// do something }

else{

//do something} // but it crashes

artist
  • 6,271
  • 8
  • 25
  • 35
  • `SeekBar` never returns negative value or `null`. May I know why you set the text to `TextView` and then parse the value from it instead of directly use `SeekBar`'s value to do something? – Andrew T. Mar 26 '14 at 02:41
  • I want to check if the user has not selected the seekbar and it's value is not between 0 and 9, What's the right way to check that?Thanks – artist Mar 26 '14 at 02:45
  • What does the crash log read ? – Rat-a-tat-a-tat Ratatouille Mar 26 '14 at 04:07
  • I suggest you to use one boolean (class variable ex. isChanged) and set it to true when seekbar change. Then simply if(isChanged){ } – Ketan Ahir Mar 26 '14 at 04:14

1 Answers1

0

This :

seekbar1.setOnSeekBarChangeListener( new OnSeekBarChangeListener(){

@Override
public void onProgressChanged(SeekBar arg0, int progress, boolean arg2) {
    // TODO Auto-generated method stub

    tv.setText("" + progress);

}

gets called when there is a change in the seek bar

and this:

String str = tv.getText().toString();
int number = Integer.parseInt(str);

if(number >= 0){

gets called immediately, regardless of whether there is a change in the seek bar or not,

hence, in order to ensure that the textview is not null then in that case, set the seekbar position to 0 in the onCreate right after you have initialized it.

Hope that helps.