繁体   English   中英

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

[英]Data accessing from one class to another class

有什么办法可以将一个类的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
}

将类A的实例提供给类B的构造函数,并将其存储在字段中。 然后,两个A和B位置共享同一作业列表。

Class B {
 private A a;
 public B(A _a) {
  a=_a;
 }
}

然后,类B中的任何方法都可以通过调用a.joblist()来读取作业列表。

在主类中声明您的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();
}
}

我要作一些假设。 我注意到您在ClassA中有一个内部类HomeTask ,并且您正在尝试从其他ClassB调用内部类上的方法。 如果为真,则在ClassA中必须有内部类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();
}

使用Observer的最佳方法。请检查java网站上的文档。在onupdate上,您可以对代码进行纠正,也可以从应用程序中的任何位置进行访问。 如果您需要更多帮助,请告诉我,我将发布代码。

谢谢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM