java Android从第二个类调用类函数
如何从类#B调用类#a中定义的函数?类#B扩展了AsynchTask并从web服务获取远程数据。类#我试图从类#B调用的函数用于发送检索到的远程数据,以供类#A显示
我试图使用this
将类#A的当前实例传递给类#B,但这只是传递上下文,因此无法识别函数
我也尝试过使用static
,但是当函数运行一个新线程时,将函数定义为static会产生一个编译器错误
我试图调用的代码如下:
public void test(List<DATA> Data){
this.Data = Data;
runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
for(DATA data : MainActivity.this.Data){
Toast.makeText(MainActivity.this, data.title, Toast.LENGTH_SHORT).show();
}
}
});
}
# 1 楼答案
其他方式:
您可以在类#a中定义一个处理程序,并从类#B中调用它
# 2 楼答案
您可以制作一个界面,即:
让A类实现接口。从类#调用asyncTask时,将自身传递给asyncTask的构造函数,该构造函数具有ReceiveDataDelegate类型的参数
使用构造函数设置AsyncTask,并将数据发送回类#a onPostExecute(),以便更新ui
这样,任何实现该接口的类都可以使用相同的asyncTask
# 3 楼答案
据我所知,你从一个异步任务B开始,因为在Android中,web抓取只能以异步方式工作。您希望对中的对象可以访问获取的结果
A会编写这样的代码
您可以使用执行前和执行后方法执行其他技巧。我希望我能帮忙