早教吧作业答案频道 -->其他-->
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调用访问类的函...的网友还看了以下:
选出有错误的选项,并改正过来()1.A:/he/B:/teach/lessons.heC:/is/D 2020-03-30 …
字母()作为单词时不能小写.(A)R,(B)A,(c)I,(D)Q 2020-05-12 …
This is ( ) jacket.A.you B.your a C.I D.my 2020-05-16 …
---I'd like to invite you to my birthday party.-- 2020-05-16 …
--mike,someone wants you on the phone --_____?but 2020-05-16 …
(斐波那契数列)谁能解释一下这个程序中的“c[i]:=c[i]+a[i]+b[i];varn,i, 2020-07-23 …
Theartisthadtodelayhisexhibition.Whichofthefollow 2020-07-23 …
三元一次方程组a*x+b*y+c*z+d=0,e*x+f*y+g*z+h=0,i*x+j*y+k* 2020-08-03 …
已知i+h=10g+c,f+d=f,10b+c+i=10c+d,10f+a+j=10f+e,11b* 2020-10-30 …
以3i-2的虚部为实部,以3i2+2i的实部为虚部的复数是()?A.3-3i?B.3+i??C.-+ 2020-11-01 …