我在片段中有一个listview。 当我选择listview项时,它会突出显示,然后我打开另一个片段。
现在,我想要的是,当我回到上一个片段时,列表项应保持选中状态。
我该怎么做?
答案 0 :(得分:2)
我实施了像
在Adapter
private int selectedIndex = ListView.NO_ID;
public int getSelectedIndex() {
return selectedIndex;
}
public void setSelectedIndex(int index) {
this.selectedIndex = index;
// Re-draw the list by informing the view of the changes
notifyDataSetChanged();
}
并在Adapter getView(...)
做
// Highlight the selected item in the list
if (selectedIndex != -1 && selectedIndex == position) {
YourView.setBackgroundResource(R.color.lightred);
}
并在Fragment
中的setOnItemClickListener onItemClick(...)
中实施
adapter.setSelectedIndex(position);
将此选定值保存在某些preferences
中,当您再次回来时,请致电Fragment
on resume(...)
adapter.setSelectedIndex(selectedIndex);
答案 1 :(得分:0)
好的,让我们这样做
声明适配器中的一个字段说
private int selectedPosition=-1;
现在为此
创建一个setterprivate void setSelectedPosition(int position)
{
selectedPosition=position;
}
现在在你的getView方法中
if(position==selectedPosition)
{
listItemView.setSelected(true);
//OR
listItemView.setBackgroundColor(<Some Color>);
}
现在在用户点击并且OnItmeSelected调用
后设置适配器adapter.setSelectedPosition(<your desired selected item position>);
adapter.notifyDataSetChanged();