ListFragment:突出显示所选行

时间:2013-02-27 15:12:53

标签: android selector

我正在使用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中的代码: in 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);
}

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

提前感谢您的回答,

1 个答案:

答案 0 :(得分: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;
}

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