我正在编写一个带有自定义适配器的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);
有人可以告诉我我做错了什么或应用程序崩溃的原因吗?
答案 0 :(得分:5)
这是递归逻辑:
@Override
public Object getItem(int arg0) {
return getItem(arg0);
}
此方法无法完成,它只是一次又一次地调用自身,直到应用程序抛出某种类型的溢出异常。它应该是:
@Override
public MyClass getItem(int arg0) {
return tours.get(arg0);
}
注意此方法如何从List中返回数据。