我正在尝试使用ListView
方法更新onItemClick
中的项目,如下所示:
((ListView)findViewById(R.id.list)).setOnItemClickListener(new AdapterView.OnItemClickListener()
{
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l)
{
view.findViewById(R.id.line_load_progress).setVisibility(View.VISIBLE);
...
}
});
在item的xml布局中,我有以下
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ProgressBar
android:id="@+id/line_load_progress"
android:visibility="invisible"
android:layout_width="match_parent"
android:layout_height="5dp"
android:indeterminate="true"
style="@android:style/Widget.Holo.ProgressBar.Horizontal"/>
...
</LinearLayout>
我想要发生的是显示进度条,因为点击某个项目将启动与网络IO的AsyncTask。不幸的是,在视图上设置对可见的可见性没有任何影响。
有人知道为什么列表视图没有更新,我可以用它做什么?
答案 0 :(得分:0)
基本上你不能直接改变列表视图中的每个元素,你需要通知列表视图有变化,它会调用它的方法进行更改
并且您可以创建包含项目位置的索引变量,因此在getView方法中,您可以指定单击哪个列表项并仅更改此项目的布局