0

我正在使用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" />
4

1 回答 1

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;
于 2013-10-18T09:34:56.267 回答