ListView - 重启时的索引和位置行为()

时间:2010-05-19 01:03:21

标签: android listview position

我使用带有ArrayAdapter的ListView来保存对象。当我选择一个项目时,我正在捕获所选项目的位置和索引。如果我在选择之前向下滚动,则位置和索引表示列表中项目的位置。选择该项目会将我带到另一项活动。当我使用后退按钮返回列表时,似乎ListView获取可见项的新位置和索引。

因此,我无法弄清楚如何在ListView Activity的restart()期间引用所选项目。我试图捕捉位置和索引,但正如我所说,他们在返回活动时会改变。

我对ListView“重绘”的理解是否正确?它是否根据可见内容重新编号我的项目? - 在生命周期中是否调用了getView()?有没有办法强制更新ListView,以便我捕获的索引仍然指向同一个对象?

谢谢, 杰森

1 个答案:

答案 0 :(得分:0)

如果您在ListView中拥有相同的元素,那么当您点击一个项目时,您将始终拥有相同的位置......

    @Override
    protected void onListItemClick(ListView l, View v, final int position, long id) {
        super.onListItemClick(l, v, position, id);
Toast.makeText(this, "This is the Item " + position + " of my listView",
                Toast.LENGTH_LONG).show();
        });

你的getView()函数......

  public View getView(int position, View convertView, ViewGroup parent) {
    Toast.makeText(this, "This is the Item " + position + " of my listView",
                        Toast.LENGTH_LONG).show();