我是新來的Android和我試圖理解爲什麼下面的代碼不工作:試圖瞭解getView()和適配器
...
matList = (ListView) findViewById(android.R.id.list);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_multiple_choice, mats);
matList.setAdapter(adapter);
matList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
matList.setOnItemClickListener(this);
CheckedTextView v =(CheckedTextView) adapter.getView(1, null, null);
v.setText("n1");
在特定線路上的文字永遠不會被改變。我發現另一種方式對這樣的項目進行點擊做到這一點(從上面繼續):
matList.performItemClick(adapter.getView(i, null, matList), 2, 2);
}
public void onItemClick(AdapterView<?> arg0, View v, int p, long arg3) {
CheckedTextView mat = (CheckedTextView) v;
mat.setText("n2");
}
它的工作原理... ListView中的第二行變爲「N2」,而第一線停留在相同......但由於某種原因,它似乎並不是正確的做法。 我儘可能地搜索了,但我沒有找到任何東西。 請幫我理解第一種方式不起作用的原因。
我不明白你爲什麼要這樣做'adapter.getView設置文本()'。無論如何,你不應該自己調用'getView()'。要顯示的數據應包含在'mats'數組中。 – m0skit0 2013-02-27 13:23:02