2013-12-03 3 views
0

Я использую isSelected для флажка. Отладка показывает, что метод возвращает false nevermind, если он выбран или нет.isSelected метод всегда возвращает false

Часть из XML:

<CheckBox 
     android:id="@+id/checkBox1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Watched" 
     android:layout_margin="10sp" /> 

и код:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.editmovie); 

     final DBHandler myMovies = new DBHandler(this); 
     final EditText edname = (EditText)findViewById(R.id.editText1); 
     final EditText eddetails = (EditText)findViewById(R.id.editText2); 
     final EditText edurl = (EditText)findViewById(R.id.editText3); 
     final CheckBox chwatched = (CheckBox)findViewById(R.id.checkBox1); 
     Button btn = (Button)findViewById(R.id.button1); 
     Intent intent = getIntent(); 
     getId = intent.getStringExtra("id"); 
     if (getId != null) 
     { 
      Cursor cursor = myMovies.getMovie(getId); 
      cursor.moveToFirst(); 
      edname.setText(cursor.getString(1)); 
      eddetails.setText(cursor.getString(2)); 
      edurl.setText(cursor.getString(3)); 
      String iswatched = cursor.getString(4); 
      if ((iswatched.equals("true") 
       chwatched.setSelected(true); 
      else 
       chwatched.setSelected(false); 
      flag=true; 
     } 

     btn.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Intent intent = new Intent(EditMovie.this , MainActivity.class); 
       String name = edname.getText().toString(); 
       String details = eddetails.getText().toString(); 
       String url = edurl.getText().toString();   
       boolean wt = chwatched.isSelected(); 
       String watched = String.valueOf(wt);  
       if (flag) 
        myMovies.updateMovie(new Movie(name, details, url, watched)); 
       else 
        myMovies.addMovie(new Movie(name, details, url, watched)); 

       startActivity(intent); 

      } 
     }); 
    } 

} 

всегда вес recieves ложная по какой-то причине ...

+4

'если ((iswatched == "истина") || (iswatched == "True"))'. Уч. Не сравнивайте String с помощью '=='. Используйте 'equals()' (в вашем случае 'equalsIgnoreCase()' будет более уместным). –

+0

@ZouZou, мой плохой, я использовал целые числа до этого и пропустил эту часть ... Я только что исправил это. – Juvi

ответ

3

Попробуйте использовать checkBox.isChecked() и checkBox.setChecked(true/false)

2

Try: chwatch.isChecked ();

вместо isSelected.

+0

yep, этот метод действительно дает ... – Juvi

Смежные вопросы