2014-01-21 105 views
0

我试图从onItemClick方法更新一个ListView项目更新项目视图,类似这样的:不能在列表视图

((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); 
     ... 
    } 
}); 

在项目的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。不幸的是,将可见性设置为对视图没有任何影响

有谁知道为什么listview没有更新,我可以用这个做什么?

+0

你可以使用进度对话框和你的preexceute方法异步显示它 –

+0

我已经试过了,它没有效果无论是。 – dragoon

+0

如果您使用具有一个虚拟空视图和进度条的ViewFlipper?在点击事件中,您将脚蹼更改为第二个孩子。 – R4ng3LII

回答

0

基本上你不能直接更改每个元素在你的列表视图中,你就需要通知列表视图有则改之,它会调用它的方法来进行更改

,你可以使持有索引变量在getView方法中点击的位置,你可以指定哪个列表项被点击并且只改变这个项目的布局

+0

感谢您的答案,但我的问题不是显示进度对话框,它是关于显示列表视图项中的进度栏​​元素。 – dragoon

+0

好的,你可以发布你的XML布局和关于你的代码的更多细节? –

+0

我使用完整的项目布局编辑了我的问题。 – dragoon