我使用带有ArrayAdapter的ListView来保存对象。当我选择一个项目时,我正在捕获所选项目的位置和索引。如果我在选择之前向下滚动,则位置和索引表示列表中项目的位置。选择该项目会将我带到另一项活动。当我使用后退按钮返回列表时,似乎ListView获取可见项的新位置和索引。
因此,我无法弄清楚如何在ListView Activity的restart()期间引用所选项目。我试图捕捉位置和索引,但正如我所说,他们在返回活动时会改变。
我对ListView“重绘”的理解是否正确?它是否根据可见内容重新编号我的项目? - 在生命周期中是否调用了getView()?有没有办法强制更新ListView,以便我捕获的索引仍然指向同一个对象?
谢谢, 杰森
答案 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();