如何分别引用2个ArrayAdapter

时间:2011-04-25 05:19:47

标签: android

过去两天我一直在努力了解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'的任何内容?

我很困惑并坚持这一点,并且非常感谢一个解释清楚的答案。

1 个答案:

答案 0 :(得分:0)

我猜这段代码是ListActivity的一部分。在这种情况下,方法setListAdapter()会自动按ID android.R.id.list引用列表。对于适配器发生的事情,需要一个来自logcat的堆栈跟踪来查看那里发生的错误。