早教吧 育儿知识 作业答案 考试题库 百科 知识分享

Android调用访问类的函数最近开发Android程序遇到了一个问题:主Activity(名为MainActivity)通过系统自动调用了一个继承BaseAdapter类B中的函数(getView),在getView中写了一个Listener,用于回

题目详情
Android 调用访问类的函数
最近开发 Android 程序遇到了一个问题:主 Activity(名为 MainActivity)通过系统自动调用了一个继承 BaseAdapter 类 B 中的函数(getView),在 getView 中写了一个 Listener,用于回调 MainActivity 中的一个函数更新 MainActivity 的 UI,请问如何实现?
就是 Activity 类 A 的实例调用非 Activity 类 B 的函数,这个函数中如何回调该 A 实例中的函数?直接输入 MainActivity 得到这的是个类本身(Static),无法得到 MainActivity 实例,不能执行更新 UI 操作
在任意地方定义:
(其他类中 import 该类.MyCallBack)
public interface MyCallBack {
void execute ();
}
调用者 (Activity 类,AClass.java):
BClass bClass; // 类变量
void createBClass () {
bClass = new BClass (new MyCallBack () {
public void execute() {
// 更新 UI 等等操作
}
});
}
被调用者 (非 Activity 类,BClass.java):
MyCallBack mCallBack; // 类变量
/** 构造函数 */
BClass (MyCallBack callBack) {
mCallBack = callBack;
}
void updateAClass () {
mCallBack.execute ();
// 即可更新 AClass 的 UI
}
该方法通用于 Java
▼优质解答
答案和解析
一般来说你特意写了一个Adapter,那么它与ListView应该是一一对应的,那么你在初始化Adapter的时候直接将MainActivity作为参数传递到Adapater中,并且将其作为Adapter的一个类成员变量,你现在想怎么调用就怎么调用了