数据从一个类访问到另一个类

时间:2011-09-20 13:59:19

标签: java android

有没有办法将一个类的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
}

4 个答案:

答案 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中的文档,您可以对代码进行检查,也可以从应用程序的任何位置进行访问。   如果您需要更多帮助,请告诉我我将发布代码。

谢谢。