假設一個列表有4個項目,我如何從列表中的每個菜單項按位置獲取視圖?如何從列表視圖中按位置獲取每個菜單項?
回答
不幸的是,ListView中的項目通常只有那些可見的項目。您應該在ListAdapter上迭代。
例如,在我的一些代碼,我有這樣的:
SimpleCursorAdapter adapter = (SimpleCursorAdapter) this.getListAdapter();
int iNum = adapter.getCount();
for(int i=0; i<iNum; i++)
{
Cursor c = (Cursor) adapter.getItem(i);
// Now you can pull data from the cursor object,
// if that's what you used to create the adapter to start with
}
編輯: 針對jeffamaphone的意見,這裏是別的東西......如果你試圖用每個UI工作元素,然後getChildAt
當然更合適,因爲它返回子項目的視圖,但總的來說,你仍然只能使用當時可見的那些。如果這就是你所關心的,那麼很好 - 只要確保你在電話回覆時檢查null
。
如果您正在嘗試實現類似於我的功能 - 對於可能超出屏幕的列表,「全選/無選擇/反轉選擇」功能的類型,那麼您最好在適配器,或者有一個外部陣列(如果在我的情況下,在適配器中沒有任何地方可以創建chagne),然後在列表適配器上調用notifyDataSetChanged()
。例如,我的「反轉」功能有這樣的代碼:
case R.id.selectInvertLedgerItems:
for(int i=0; i<ItemChecked.length; i++)
{
ItemChecked[i] = !ItemChecked[i];
}
la.notifyDataSetChanged();
RecalculateTotalSelected();
break;
注意,在我的情況,我還使用自定義的ListView子項,使用adapter.setViewBinder(this);
和一個自定義功能setViewValue(...)
。
此外如果我記得正確,我不認爲列表中的「位置」必須與適配器中的「位置」相同......它再次基於位置在名單。因此,即使您想要列表中的「第50個」項目,如果它是第一個可見的,getChildAt(50)
也不會返回您期望的內容。我認爲你可以使用ListView.getFirstVisiblePosition()
來計算和調整。
基於jeffamaphone的評論嗯,我可能會誤解這個問題咯......這取決於你正在嘗試做什麼。請注意,您無法獲得「全部」子視圖,因爲ListView會動態管理列表中的視圖......您可以獲取用於創建視圖的每個數據項。因此,如果您嘗試爲每個項目在UI中執行某些操作,則可以使用'getChildAt',但必須小心才能處理那些不返回null的操作。如果您正在嘗試使用這些數據,請使用上面的解決方案。 –
- 1. 如何從列表視圖中獲取項目的位置?
- 2. Android:從列表視圖中按位置獲取視圖
- 3. 如何在列表視圖中獲取列表項的位置?
- 4. 如何在列表視圖中獲取按鈕的位置?
- 5. 獲取GridView後點擊列表視圖中每個項目的位置
- 6. 在每個列表視圖項目中添加「菜單」
- 7. 如何從列表視圖中通過按鈕單擊獲取selectedItem項目
- 8. 如何從列表視圖中獲取列表項的數量?
- 9. 獲取按鈕在列表視圖中的位置
- 10. 從非列表視圖視圖獲取數據庫項目的位置?
- 11. 如何在長按列表項時加載列表視圖中的菜單
- 12. 從ListView中獲取列表項的位置按鈕
- 13. 我想從列表項中獲取列表項位置
- 14. Android:獲取菜單項的位置
- 15. 如何在列表視圖中獲取觸摸位置?
- 16. 使用cursorAdapter獲取列表視圖中的按鈕點擊項目位置
- 17. 從位置列表中獲取位置按鈕
- 18. 如何從LinkedIn中的位置獲取項目列表-J
- 19. 在列表視圖中獲取選定的單選按鈕位置
- 20. 從Android中獲取菜單項圖標
- 21. 如何獲取從哪個上下文菜單選項被選中的視圖?
- 22. 按鈕onClick在視圖模式列表視圖中獲取錯誤的位置
- 23. Android:從列表視圖中獲取行位置
- 24. 獲取位置後點擊按鈕,在列表視圖
- 25. Android:GUI:從列表視圖獲取項目
- 26. 從列表視圖獲取項目[i]
- 27. Android:獲取視圖參考菜單項
- 28. 如何添加按鈕,每個項目在列表視圖
- 29. 如何從列表項中獲取單個項目
- 30. 獲取列表視圖項的位置onTextChanged
你說的列表視圖中提到類似的問題,但隨後詢問如何從每個「菜單」視圖。你在談論一個上下文菜單或列表視圖? – Jack
是的,目前尚不清楚你的問題是什麼。更好的解釋會導致更好的答案。 –
確定一個「列表視圖」 – wickerman87