0

我正在使用 ListFrament,我想突出显示选定的行。

我的选择器:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item 
    android:state_pressed="true"
    android:drawable="@color/gold" />
  <item
    android:state_selected="true"
    android:drawable="@color/plum" />
  <item 
    android:drawable="@color/medium_green" />
</selector>

我的 ListFragment 中的代码:在 onCreateActivity 中:

this.getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);

点击:

@Override
public void onListItemClick(ListView list, View v, int position, long id) {
    super.onListItemClick(list, v, position, id);
    String tag = this.getTag();
    Log.d(TAG, "id, position " + id + " " + position);
    list.setSelection(position);
}

不幸的是,这不起作用-单击该行时,它只会闪烁“金色”...我希望所选行保持突出显示...

提前感谢您的回答,

4

1 回答 1

2

尝试这个

设置行类型的全局变量。我正在使用 View,因为它是通用的

View previous;

在 onCreateView 中初始化视图

previous=new View(getContext);

当 onListItemClick 这样做时

public void onListItemClick(ListView list, View v, int position, long id) {
    super.onListItemClick(list, v, position, id);
    String tag = this.getTag();
    Log.d(TAG, "id, position " + id + " " + position);
   previous.setSelected(false);
   v.setSeleted(true);
   previous=v;
}

试试这个,然后回到我在我的旧应用程序中使用过这个......我肯定会工作......我希望这会对你有所帮助。

于 2013-02-27T15:34:04.097 回答