我不明白为什么我得到一个编译错误:
public class Main_screen extends ListActivity {
List<Object> completeList;
private My_ArrayAdapter adapter;
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
completeList = getCompleteList();
adapter = new My_ArrayAdapter(this, completeList);
setListAdapter(adapter);
}
public void doSth() {
...
}
}
Run Code Online (Sandbox Code Playgroud)
在My_ArryAdapter中:
public class My_ArrayAdapter extends ArrayAdapter<Object> {
private final List<Object> list;
private final Activity context;
public My_ArrayAdapter(Activity context, List<Object> list) {
this.context = context;
this.list = list;
}
public void tryIt() {
context.doSth(); // <-------- THIS DOES NOT WORK, this method can not be called
}
}
Run Code Online (Sandbox Code Playgroud)
请解释一下,有什么基础我还没有理解.我只是将上下文传递给我创建的ArrayAdapter实例.从这个实例中我想要调用调用者的方法.
为什么不能这样做?
非常感谢!
试试这个:
public void tryIt() {
((Main_screen)context).doSth();
}
Run Code Online (Sandbox Code Playgroud)
上下文是Activity,它没有doSth(),但是Main_screen有,所以你应该转换为这个类