2017-08-17 326 views
0

我已經創建了一個自定義適配器並將其應用於listView,但是當我單擊一個CheckTextView項目時,.setChecked()方法不會更改單選按鈕上的狀態UI。checkedTextView OnClickListener .setChecked()不工作

int getPosition = position; 
checkedTextView.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 

      if (checkedTextView.isChecked()) { 
       Log.i("Username", Title.get(getPosition) + " is no longer checked"); 

       checkedTextView.setChecked(false); 

      } else { 
       Log.i("Username", Title.get(getPosition) + " is checked"); 
       checkedTextView.setChecked(true); 


      } 

    } 
}); 

然而日誌顯示該視圖被選中和未選中。

我錯過了什麼?

感謝

+1

更改了佈局,並在文本旁邊放置了一個「CheckBox」,取而代之的是它工作得很好。 CheckTextView有錯誤嗎? –

回答

0

我不知道爲什麼它的發生,但我有一個想法,以實現它以另一種方式

假設你正在使用自定義適配器來加載列表項

設置OnClickListener爲CheckedTextView在在您的自定義適配器中創建視圖的時間

final CheckedTextView ct = (CheckedTextView) view 
      .findViewById(R.id.checkedTextView); 
ct.setText("text"); 
ct.setOnClickListener(new OnClickListener() {   
@Override 
public void onClick(View v) { 
    // do what ever you want to perform here 
    if(ct.isChecked()){ 

    } else { 

    } 
} 
}); 
+0

這正是我現在所擁有的。 –

+0

更改您的應用程序的佈局,並將複選框放在文本旁邊,而且它工作得很好。 – TheSwiftGuy77

+0

是的,我現在使用它,但不確定爲什麼CheckedTextView不能按預期工作。無論如何感謝 –