0

我正在为列表视图编写一个带有自定义适配器的 Android 应用程序。

适配器是 mainActivity 类中的一个变量,包含自定义类的列表。我需要从其他活动访问此列表中的一个类,但是当应用程序到达适配器中的 getItem(position) 时,它似乎崩溃了。

基本上这就是应用程序的样子:

在 MainActivity 类中有一个基本的自定义适配器:

public class MainActivity extends Activity {
    public static MyAdapter myAdapter;
    ...
}

适配器仅具有 getItem 等基本功能,并具有自定义(基本)类的列表

public class MyAdapter extends BaseAdapter {
    private ArrayList<MyClass> tours = new ArrayList<MyClass>();

    @Override
    public Object getItem(int arg0) {
        return getItem(arg0);
    }
    ...
}

当另一个活动被打开时,一个索引被传递给它以访问列表中的某个对象。

唯一的问题是,当我尝试从此列表中访问一个类时,应用程序崩溃了……我使用以下代码从适配器中的列表中访问该类:

MyClass myClass = (MyClass)MainActivity.myAdapter.getItem(index);

有人可以告诉我我做错了什么或为什么应用程序崩溃了吗?

4

1 回答 1

5

这是递归逻辑:

@Override
public Object getItem(int arg0) {
    return getItem(arg0);
}

此方法无法完成,它只是一次又一次地调用自身,直到应用程序抛出某种类型的溢出异常。它应该是:

@Override
public MyClass getItem(int arg0) {
    return tours.get(arg0);
}

请注意此方法如何从您的列表中返回数据。

于 2013-04-17T15:58:09.553 回答