我有一个ListView显示有关对象的信息。当我单击ListView项时,我打开一个Activity,让我操作适配器中保存的对象的参数。这些参数会被远程更新和存储。
当我返回ListView(通过后退按钮)时,我想通过从远程服务器请求参数值来更新我最初单击的ListView项。
我目前正在通过清除并重建它来更新整个ListView。
如何引用ListView项目以便我只能更新该项目的数据?
谢谢, 杰森
答案 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重新编号。结果,我最终访问了错误的对象。