Adapter.getItem(position)崩溃了应用程序

Han*_* Vn 0 java crash android android-adapter

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

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

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

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

public class MainActivity extends Activity {
    public static MyAdapter myAdapter;
    ...
}
Run Code Online (Sandbox Code Playgroud)

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

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

    @Override
    public Object getItem(int arg0) {
        return getItem(arg0);
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

打开其他活动时,会向其传递索引以从列表中访问某个对象.

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

MyClass myClass = (MyClass)MainActivity.myAdapter.getItem(index);
Run Code Online (Sandbox Code Playgroud)

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

Sam*_*Sam 5

这是递归逻辑:

@Override
public Object getItem(int arg0) {
    return getItem(arg0);
}
Run Code Online (Sandbox Code Playgroud)

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

@Override
public MyClass getItem(int arg0) {
    return tours.get(arg0);
}
Run Code Online (Sandbox Code Playgroud)

请注意此方法如何从List返回数据.