有没有办法将一个类的ArrayList调用到另一个类?在类A中,ArrayList在那里,我需要在类B中使用该ArrayList,类A具有AsyncTask
,因为我有Arraylist所以我需要在另一个类的AsynTask的Arraylist中。
在A班:
public Class A{
public class HomeTask extends AsyncTask<Void,Void,Bundle> {
onPreexecute(){}
doInbackground(){}
postexecute(){}
Arraylist joblist(); //------------ My data is here;
}
}
第二课:
Class B
{
// I need to use that arraylist here
}
答案 0 :(得分:0)
将类A的实例提供给B类的构造函数并将其存储在字段中。 然后是A&amp; B istances共享相同的工作清单。
Class B {
private A a;
public B(A _a) {
a=_a;
}
}
然后B类中的任何方法都可以通过调用来读取作业列表 a.joblist();
答案 1 :(得分:0)
将你的arraylist声明为主要类。
Public Class A{
ArrayList yourlist;
public class HomeTask extends AsyncTask<Void,Void,Bundle>
{
onPreexecute();{}
doInbackground();{}
postexecute();{}
Arraylist joblist()------------ My data is here;
}
}
second class:
Class B
{
I need to use that arraylist here
}
}
或者您可以在主类中创建HomeTask的对象,并通过此对象使用它,如
Public Class A{
HomeTask hometask;
public class HomeTask extends AsyncTask<Void,Void,Bundle>
{
onPreexecute();{}
doInbackground();{}
postexecute();{}
Arraylist joblist()------------ My data is here;
}
}
Class B
{
ArrayList al = hometask.joblist();
}
}
答案 2 :(得分:0)
我要做一些补救。我注意到你在 ClassA 中有一个内部类 HomeTask ,并且你试图从其他 ClassB 调用内部类的方法。如果这是真的,那么 HomeAask 中必须有内部类 HomeTask 的实例,除非 HomeTask 是一个静态内部类,目前它不是。所以......
如果ClassA是:
public Class A{
public class HomeTask extends AsyncTask<Void,Void,Bundle> {
onPreexecute(){}
doInbackground(){}
postexecute(){}
Arraylist joblist(); //------------ My data is here;
}
private HomeTask homeTask = new HomeTask();
public HomeTask getHomeTask(){
return this.homeTask;
}
}
和ClassB;
public class ClassB{
private ClassA classA = new ClassA();
private HomeTask homeTask = classA.getHomeTask();
private ArrayList arrayList = homeTask.jobList();
}
答案 3 :(得分:0)
使用Observer的最佳方式。请检查java web site.where onupdate中的文档,您可以对代码进行检查,也可以从应用程序的任何位置进行访问。 如果您需要更多帮助,请告诉我我将发布代码。
谢谢。