过去两天我一直在努力了解ArrayAdapters,但似乎无法完全理解它们。
以下代码按原样运行。
private void initAdapter(ArrayList<String> aL) {
for (String s : aL) {
aL.add(s);
}
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, aL) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row;
if (null == convertView) {
row = mInflater.inflate(R.layout.list_item, null);
} else {
row = convertView;
}
TextView tv = (TextView) row.findViewById(android.R.id.text1);
tv.setText(getItem(position));
return row;
}
});
}
我试图将它变成一种方法,我可以在多个数组上使用ArrayAdapter并将它们放入单独的ListViews中。 当我尝试将方法修改为
时private void initAdapter(ArrayList<String> aL, ListView L) {
和
L.setAdapter(new ArrayAdapter<String>(this. R.layout.list_item, aL) {
我在编译时遇到错误。 此外,为什么您不必为第一个ArrayAdapter指定ListView。它是否只是自动引用id为'list'的任何内容?
我很困惑并坚持这一点,并且非常感谢一个解释清楚的答案。
答案 0 :(得分:0)
我猜这段代码是ListActivity
的一部分。在这种情况下,方法setListAdapter()
会自动按ID android.R.id.list
引用列表。对于适配器发生的事情,需要一个来自logcat的堆栈跟踪来查看那里发生的错误。