如何獲得ListView
項目的所有子項?
有方法讓孩子在位置,但我無法找到任何方法返回ListView
的項目中的所有兒童的集合。獲取所有ListView項目(行)
更新:我剛發現我需要ListView
項目(行)來代替。我怎樣才能做到這一點?
我在做的是,比較所選項目ListView
與所有項目。
如何獲得ListView
項目的所有子項?
有方法讓孩子在位置,但我無法找到任何方法返回ListView
的項目中的所有兒童的集合。獲取所有ListView項目(行)
更新:我剛發現我需要ListView
項目(行)來代替。我怎樣才能做到這一點?
我在做的是,比較所選項目ListView
與所有項目。
你從列表適配器的所有列表項,通過迭代如下
for (int i=0;i<adapter.getCount();i++){
adapter.getItem(i);
}
更新:
for (int i=0;i<adapter.getCount();i++){
if(adapter.get(selectedIndex)==adapter.getItem(i)){
// TODO : write code here item match
break; // after match is good practice to break loop instead compare rest of item even match
}
}
請參閱更新的問題。 – Nitish 2014-09-13 10:07:15
五月:您可以使用索引,帶有表適配器下的所有項目比較特殊項目當你正在尋找這樣的事情。您需要有權訪問rootView,您可以從中獲取子視圖。 onItemSelected僅用於提供點擊位置的rootview。
public void onItemSelected(AdapterView<?> parent, View view, int pos,long id) {
ImageView imgView = view.findViewById(R.id.myImageView);//your imageview that is inflated inside getView() of adapter
//similarly for other views
}
使用此方法來獲取所有的洞察力和出視線視圖列表視圖:
for (int i = 0 ; i < listView.getCount() ; i++){
View v = getViewByPosition(i,listView);
}
public View getViewByPosition(int position, ListView listView) {
final int firstListItemPosition = listView.getFirstVisiblePosition();
final int lastListItemPosition =firstListItemPosition + listView.getChildCount() - 1;
if (position < firstListItemPosition || position > lastListItemPosition) {
return listView.getAdapter().getView(position, listView.getChildAt(position), listView);
} else {
final int childIndex = position - firstListItemPosition;
return listView.getChildAt(childIndex);
}
}
我想如果在ListView
你的項目類型ViewGroup
你可以做以下
ArrayList<View> children = new ArrayList<View>();
for (int i = item.getChildCount() - 1 ; i>=0; i--) {
children.add(item.getChildAt(i));
}
這應該是被接受的答案。 – josh123a123 2017-03-03 19:15:04
不完全確定你爲什麼要這樣做,但是直接從適配器中提取所有數據不是更好嗎?而不是從ListView中拉取視圖。 – 2014-09-13 11:24:32