我正在使用SherlokListFragment在ListView
内创建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" />
答案 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;