2014-01-17 39 views
1

我得到了一個ListView,一個適配器,當然還有一個Activity來管理它。有沒有辦法從ListView的位置得到一個完整的視圖?

如何從我的活動中獲取某個位置的視圖以更改活動中的某些內容? 我知道我可以進行更改,然後做adapter.notifyDataSetChanged(),但我想整個視圖回到我的活動

例如:

private void changeText(int index){ 
View view=adapter.giveMeBackMyView(index); //that's what I'm trying to find 
TextView tv=(TextView) view.findViewById(R.id.listTextView); 
tv.setText("changed"); 

} 
+0

看到getFirstVisubleItem,它是第一個子視圖 – pskink

+0

你可以得到所有可見的看法的,但列表視圖中重新使用這個意見,並改變它們這會讓你陷入麻煩。就像在你將要滾動的時候一樣,變化將會消失或者其他項目會被改變 –

+0

你嘗試過使用adapter.getView(int position,View convertView,ViewGroup parent)。但是你應該在數據對象更改後立即進行更改在視圖中使變化成爲永久性的。 – dora

回答

3

這裏試試這個:setAdapter到ListView第一,比yourListView.getItemAtPosition(index);
yourAdapter.getView(int position, View convertView, ViewGroup parent)

1

您可以使用此

adapter.getView(index, null, null); 

要知道您正在快速切割適配器/視圖系統。這不是一個好主意,因爲您要求的視圖可能實際上並不存在於列表視圖中。記住一個listview可以包含數百萬個項目。這些並不都是真實存在的。只有幾個可見的視圖,Android會在您滾動時回收它們。因此,可能需要重新考慮如何解決這個問題。

+0

格雷格,說我有一個列表視圖,單元格,並在單元格中有很多按鈕。使用「onClick」,我得到例行clickedFun(View v)。該視圖是**只有按鈕**。然後我需要獲得「整個」細胞。 (實際上使用getTag,得到「持有者」)。這樣我就可以改變單元格中的東西。還有什麼可以做的!?謝謝你在這裏的偉大提示順便說一句! – Fattie

相關問題