如何识别ListViewItem以更新单行

时间:2010-05-11 01:03:31

标签: android listview

我有一个ListView显示有关对象的信息。当我单击ListView项时,我打开一个Activity,让我操作适配器中保存的对象的参数。这些参数会被远程更新和存储。

当我返回ListView(通过后退按钮)时,我想通过从远程服务器请求参数值来更新我最初单击的ListView项。

我目前正在通过清除并重建它来更新整个ListView。

如何引用ListView项目以便我只能更新该项目的数据?

谢谢, 杰森

2 个答案:

答案 0 :(得分:1)

只需设置适配器的数据并调用notifyDatasetChanged即可。 Android只绘制了可见的行,因此非常有效。

答案 1 :(得分:1)

知道视图的位置,可以这样做。

View singleItemView = myListView.getChildAt(position);
ImageView icn = (ImageView) singleItemView.findViewById(R.id.icn_icon);
ProgressBar prg = (ProgressBar) singleItemView.findViewById(R.id.prg_icon);
icn.setVisibility(View.GONE);
prg.setVisibility(View.VISIBLE);

(适用EDIT) 这不起作用,因为从另一个Activity返回时可以更改View的“位置”。在onResume()触发后,调用getView()并且可见的ListView项的位置从0开始编号。因此,ListView项(id和position)将根据visiblity重新编号。结果,我最终访问了错误的对象。