我有兩個列表listArray
和itemStateList
。爲什麼ListView.getChildAt()在android中返回null
listArray
包含文本要顯示在ListView
和itemStateList
包含顏色名稱以設置ListView
中的背景。但listView.getChildAt(i)
總是返回null
。
我在StackOverflow上找到了一些解決方案,聲明使用listView.getAdapter().getView(i)
代替。但沒有詳細說明,爲什麼要使用listView.getAdapter()
以及爲什麼listView.getChildAt()
不起作用。也只是想知道何時使用listView.getChildAt()
。
下面是代碼..
public void createAndSetAdapter(){
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, listArray);
listView.setAdapter(adapter);
for(int i = 0; i < listArray.size(); i++){
switch (itemStateList.get(i)){
case "Green_color":
listView.getAdapter().getView(i, null, listView).setBackgroundColor(Color.parseColor("#AAFF7F"));
break;
case "red_color":
listView.getAdapter().getView(i, null, listView).setBackgroundColor(Color.parseColor("#FFAAAA"));
break;
default:
break;
}
}
}
''for'循環中的listArray'和'switch'中的'itemStateList'都不同'list' –
'for'循環的循環等於'listArray'的大小。而'switch'則根據itemStateList來檢查在ListView中設置的顏色。 –
爲什麼-1,我的代碼工作正常,只想知道'getChildAt()'和'getAdapter()。getView()'之間的區別。 –