即使视图发生更改,也会保持列表视图项目处

时间:2015-07-02 06:51:50

标签: android android-listview

我在片段中有一个listview。 当我选择listview项时,它会突出显示,然后我打开另一个片段。

现在,我想要的是,当我回到上一个片段时,列表项应保持选中状态。

我该怎么做?

2 个答案:

答案 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;

现在为此

创建一个setter
private 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();