早教吧作业答案频道 -->其他-->
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
最近开发 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的一个类成员变量,你现在想怎么调用就怎么调用了
看了 Android调用访问类的函...的网友还看了以下:
21、如图,用同样规格黑白两色的正方形瓷砖铺设长方形地面,请观察下列图形,(1)设铺设地面所用瓷砖 2020-05-16 …
一个圆系方程的证明:如何证明过定点p(x0,y0)的圆系方程(x-x0)^2+(y-y0)^2+m 2020-05-20 …
如图,用火柴棒按如下方式摆放:设第n个图中需要y根火柴棒,请写出y与n的函数关系式:y=32n2+ 2020-06-27 …
设A是n阶矩阵,A=E+xy^T,x与y都是n*1矩阵,且x^T*y=2,求A的特征值、特征向量易 2020-06-30 …
几道集合的填空题已知M,N是两个非空集合,且对于M中的任何一个元素x,都有x¢N,则M、N的关系是 2020-08-01 …
一道关于几何的数学难题正n边形ABCDE……中,点M是CD上异于端点的任意一点,过点C作射线CN交 2020-08-01 …
某车队06年处以98万元购进大客车营运,第一年支出各种费用12万从第二年起每年支出费用均比上一年增加 2020-10-31 …
已知集合M={x|x=3m+1,m∈z},N={y|y=3n+2,n∈z},若x∈M,y∈N,则xy 2020-11-03 …
某公司拟用运营指数y来量化考核司机的工作业绩,运营指数(y)与运输次数(n)和平均速度(x)之间满足 2020-12-16 …
如图,用同样规格黑白两色的正方形瓷砖铺设矩形地面,请观察下列图形并解答有关问题.(1)设铺设地面所用 2020-12-24 …