0
我在導航抽屜中使用簡單的ListView
,在佈局XML中設置了android:choiceMode="singleChoice"
。這讓我使用的文本顏色選擇:禁止選擇某些ListView項目,但仍然獲得點擊事件?
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_activated="true" android:color="@color/primary_500" />
<item android:color="@color/text_primary" />
</selector>
這將色彩與primary_500
所選擇的項目,並與text_primary
休息。
以上工作正常,但其中一個項目將推出,而不是加載一個片段一個新的活動,所以它不應該做出選擇項目的ListView
的。
我試過這個恢復它:
public void selectItem(int index) { selected_item = index; }
public void revertSelectedItem() {
int y = navigation.getScrollY();
list.setSelection(selected_item);
list.scrollTo(0, y);
}
和其他地方:
@Override
public void onItemClick(ListView list, View view, int index, long id) {
switch((int)id) {
case R.id.exampleItem_forFragment:
/* Swap fragments */
selectItem(index);
break;
case R.id.exampleItem_forActivity:
/* Launch activity */
revertSelectedItem();
break;
}
}
但是,即使revertSelectedItem()
被調用時,選擇沒有改變。我假定在onItemClick()
返回後纔會分配新的選擇,所以我的更改被覆蓋。
有沒有乾淨的方法來禁用或恢復選擇只能更改某些項目,但仍收到的點擊事件?