2010-12-09 71 views
2

我正在開發SoundBoard應用程序。我的課程擴展ListActivity和列表視圖如下Android:獲取ListView的onItemClickListener()中的TextView

[Image] [Text] 
[Image] [Text] 
[Image] [Text] 

現在,當用戶點擊任何文本視圖,我需要改變該文本視圖的圖像。我通過下面的代碼來實現它。

public void onItemClick(AdapterView<?> parent, View view, 
      int position, long id) { 

TextView tv1 = (TextView) view; 
//Here I change the image with tv1 as reference 
} 

但我需要一個替代的方式來獲得所選擇的TextView。因爲當我使用上面的方法改變圖像時,如果用戶選擇列表中的第三行,圖像在第二個滾動頁面的第三行,第三個滾動頁面的第三行等等變化受到影響。不僅所需的textview圖像更改,但滾動列表時,即將更改的滾動頁面中的一個textview會更改。希望你能解決我的問題。任何幫助表示讚賞。由於

回答

1

我認爲你看到的行爲來自於一個事實Android會回收ListView中使用的TextView;這就是爲什麼Adapter.getView()有一個convertView參數。 (一旦一個TextView已經滾動到屏幕,它可以通過convertView參數傳遞到Adapter.getView(),重新使用一個已經滾動到顯示的項目。)

,你可以嘗試添加android.widget.AbsListView.OnScrollListener到ListView ,以在特定時間追蹤列表中的哪些項目在屏幕上。您可能還需要覆蓋Adapter.getView()以強制圖像回到默認設置(或者更一般地說,使用適用於新顯示項目的圖像)。

0

我沒有測試我自己,你可以嘗試通過添加onClck屬性中的TextView
<android :onclick="name of function>

乾杯, Kariyachan

+0

感謝您的回覆。這聽起來是個好主意。但是我如何獲得對函數中textview的引用。函數應該包含參數。 – Vivek 2010-12-09 05:10:11

+0

是的。例如myfunction(查看v)然後你可以得到由fn點擊的Textview ID getId()做你的東西歡呼,Kariyachan – DroidBot 2010-12-09 05:28:27

相關問題