使用SherlokListFragmet在ListView中不会保留项目突出显示

时间:2013-10-18 07:36:48

标签: android listview android-listview android-fragments actionbarsherlock

我正在使用SherlokListFragmentListView内创建Fragment

我设置了适配器:

adapter = new ServiceArrayAdapter(getActivity(), ((ACT_ListProvider)this.getActivity()).getItems());        
setListAdapter(adapter);

我做了ListView

的自定义
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);

getListView().setPadding(3, 3, 3, 3);
getListView().setDividerHeight(2);
getListView().setBackgroundColor(Color.parseColor("#eeeeee"));
getListView().setCacheColorHint(Color.parseColor("#00000000"));
getListView().requestFocusFromTouch();
getListView().setSelector(R.drawable.list_selector);

单击某个项目时,我会调用此代码:

getListView().setItemChecked(index, true);

除选择器外,所有自定义都正确添加到我的ListView。我已经在其他项目中使用了该选择器,并且它运行良好(但我总是在xml布局中使用它),所以我无法理解为什么它没有添加到我的ListView。问题出在哪里?

修改

特别是我希望如果点击一个项目,焦点仍然在它上面,而现在它立即消失。 我的选择器的代码如下:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item
     android:state_selected="false"
        android:state_pressed="false"
        android:drawable="@drawable/gradient_bg_hover" />

    <item android:state_pressed="true"
        android:drawable="@drawable/gradient_bg_hover" />

    <item android:state_selected="true"
     android:state_pressed="false"
        android:drawable="@drawable/gradient_bg_hover" />

1 个答案:

答案 0 :(得分:0)

我没有得到我想要的东西所以我一直在挖掘并提出了一个“廉价”的解决方案,这可能不是最好的做法,但可以完成工作。我希望在选中时突出显示该项目,并且当从listFragment中选择其他项目时,颜色应该消失。这对我有用 - 我定义了静态视图V;并初始化它V = new View(getActivity());然后在我的:

onListItemClick(ListView l, View v, int position, long id)

            V.setBackgroundResource(0);
            v.setBackgroundResource(R.color.BLUE);
            V = v;