我有一个ListView显示有关对象的信息。当我点击一个ListView Item时,我打开一个Activity让我操纵适配器中保存的对象的参数。这些参数被更新并远程存储。如何识别ListViewItem更新单个行
当我返回到ListView(通过后退按钮)时,我想通过从远程服务器请求参数值来更新我最初点击的ListView项目。
我目前正在通过清理并重建它来更新整个ListView。
如何引用ListView项目,以便我只能更新该项目的数据?
感谢, 杰森
我有一个ListView显示有关对象的信息。当我点击一个ListView Item时,我打开一个Activity让我操纵适配器中保存的对象的参数。这些参数被更新并远程存储。如何识别ListViewItem更新单个行
当我返回到ListView(通过后退按钮)时,我想通过从远程服务器请求参数值来更新我最初点击的ListView项目。
我目前正在通过清理并重建它来更新整个ListView。
如何引用ListView项目,以便我只能更新该项目的数据?
感谢, 杰森
只需设置数据适配器和呼叫notifyDatasetChanged
。 Android只绘制可见的行,所以非常高效。
了解视图的位置,就可以完成。
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) 这并不工作,因为该视图的“位置”可能在从另一活动返回改变。在onResume()触发后,调用getView(),并且可见ListView Items的位置从0开始编号。因此,ListView项(id和position)根据可见性重新编号。结果,我最终访问了错误的对象。
我需要在设置数据之前访问ListView项目中的视图。获取数据是一个耗时的过程,我想用一个不确定的进度条替换ListView项中的图标。 我可以更新整个ListView,并在视觉上确定。新数据刚刚出现。但是,没有向用户指示哪个ListView项目正在更新。 同样,这是返回到活动。我可以通过使用onClick事件处理程序在ListView活动中直观地指示使用进度条。 – tunneling 2010-05-11 03:18:56
我想这实际上取决于你如何创建你的ListAdapter。使用ArrayAdapter,你可以使用getItem(index) – synic 2010-05-11 03:35:18
看到我的答案,对不起,如果我不清楚我的问题。如果我可以用我自己的线程......当我离开并返回活动时,如何将正确的值保存在变量“位置”中?我希望能够使用静态字段,但当我返回到活动时它会被设置为零。 – tunneling 2010-05-11 03:52:42