2013/03/18
OnItemClickListener.onItemClick() の中で isChecked() を呼んではいけない?

OnItemClickListener.onItemClick()
の中ではどうなのか、調べてみました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | public class MainActivity extends ListActivity { private static final String TAG = "MainActivity" ; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); String[] listItems = { "1" , "2" , "3" }; getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); ListAdapter adapter = new ArrayAdapter<String>( this , android.R.layout.simple_list_item_multiple_choice, listItems); setListAdapter(adapter); getListView().setOnItemClickListener( new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { CheckedTextView cv = (CheckedTextView) view; Log.d(TAG, "isChecked " + cv.isChecked()); } }); } } |
これを、Android 4.0.4 のエミュレータで動作させると以下の通り
// OFF → ON isChecked false // ON → OFF isChecked true |
Android 4.2 のエミュレータで動作させると以下の通り
// OFF → ON isChecked true // ON → OFF isChecked false |
やはり逆転してしまいました。
先程も書いたとおり、とりあえずの対策は出来ると思いますが、正しい対処方法がわかりません…
0 件のコメント:
コメントを投稿