2014-01-21 45 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