android - 从调用 Activity 创建的对象中访问调用 Activity 的方法

标签 android methods

MyI 不明白为什么我会为此得到一个编译错误:

   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() {
                ...
        }
    }

在 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
        }
    }

请解释一下,有没有我不明白的基本知识。我只是将上下文传递到我创建的 ArrayAdapter 实例中。在这个实例中,我想访问调用者的方法。

为什么这不可能?

非常感谢!

最佳答案

试试这个:

public void tryIt() {
           ((Main_screen)context).doSth();  
        }

context 是 Activity,它没有 doSth(),但是 Main_screen 有,所以你应该转换到这个类

关于android - 从调用 Activity 创建的对象中访问调用 Activity 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8429579/

相关文章:

java - 方法返回不正确的值?

php - 将阿拉伯文本插入MySQL数据库-PHP

java - BitmapFactory.decodeResource(getResources(), R.drawable.four_colors);四色是什么意思?

android - 在 android 中从 Realm 结果创建独立对象

android - 长时间等待同步对象,即使其他线程没有持有锁

java - 在控制台中打印出 ExamQuestion@143c8b3

android - alarmmanager 2次

typescript 语法 : { new (): T } | { new (): T }[]

c# - 如何将 C# 静态方法中的值分配给标签

ruby - 如何在 mixin 方法中访问实例变量?