关于如何使用CheckedTextView
有很多问题,但我不能让它正常工作。
我有一个带有自定义视图的CursorAdapter
,它有一个带有android:id="@android:id/text1"
的CheckedTextView
。我之所以使用android:id/text1
,是因为有不同的问题提到,如果你使用它,你将免费获得选择模式的倍数。
如果我这样做:
final long[] checkedIds = mListView.getCheckedItemIds();
for ( int i = 0 ; i < mListView.getCheckedItemCount() ; i++ ) {
Log.d(TAG, "id checked: " + checkedIds[i]);
}
我没有任何问题地获得了所有检查过的in,但我在ListView
中看不到任何视觉反馈。
换句话说,逻辑是正确的,但是当我单击CheckedTextView
时,绿色的勾号并没有显示出来。
我正在阅读ListView
src代码,但找不到任何对android:id/text1
的引用,这让我想知道是否应该自己处理小部件的选中状态。
任何人都能发现android:id/text1
在哪里被用来检查小部件吗?
发布于 2011-04-10 23:39:36
根据我对代码的阅读,行必须实现Checkable
if (mChoiceMode != CHOICE_MODE_NONE && mCheckStates != null) {
if (child instanceof Checkable) {
((Checkable) child).setChecked(mCheckStates.get(position));
}
}
这适用于具有选择模式的列表的股票行布局,因为该行是实现Checkable
的CheckedTextView
。
因此,将Checkable
接口添加到您的自定义View
中,将该接口的方法委托给CheckedTextView
,看看是否可行。
https://stackoverflow.com/questions/5612600
复制相似问题