如何创建一个可由android中不同类访问的ArrayList?

时间:2016-03-17 19:24:37

标签: java android arraylist

我有一个CameraView类(带有onPreviewFrame),在每个传入帧上计算值1或0取决于帧亮度,我希望在每个传入帧上计算出的值将添加到ArrayList。 当我需要从MainActivity类中读取ArrayList中的数据时,问题就开始了。

如何创建不同类可以访问的列表?

我知道它相对简单,但我是java / android的新手,并试图了解它是如何工作的。

3 个答案:

答案 0 :(得分:0)

以下是我最近在需要将HashMap从一个活动发送到另一个活动时使用的示例:

Intent i = new Intent(getApplicationContext(), BillPage.class);
i.putExtra("workPriceMap", (HashMap<String, Float>)workPriceMap);
startActivity(i);

然后在我的另一节课中我使用了这个:

private Map<String, Float> workPriceMap;
workPriceMap=(HashMap<String,Float>intent.getSerializableExtra("workPriceMap");

答案 1 :(得分:0)

您可以创建一个单例类,如下所示:

public class Singleton {

    private static Singleton instance;

    private List<String> frameList;

    private Singleton() {
        this.frameList = new ArrayList<String>();
    }

    public static Singleton() {
        if(instance == null)
            instance = new Singleton();

        return instance;
    }

    public List<String> getList() {
        return this.frameList;
    }

    public void setList(List<String> frameList) {
        this.frameList = frameList;
    }

}

然后您可以通过以下方式从任何类访问它:

Singleton.getInstance().getList().add("x");

答案 2 :(得分:0)

您可以使用单例方法,这样您就可以在任何地方使用相同的参考。

public  class YourClass {

    private ArrayList<String> yourList;
    private  YourClass instance;

    private YourClass(){
        yourList = new ArrayList<>();

    }
    public static YourClass getInstance(){
        if(instance == null){
            instance = new YourClass(); 
        }
        return instance;
    }

    public ArrayList<String> getYourList(){
        return this.yourList;
    }

} 

public class OtherClass{
    public static void main(String [] args){
        ArrayList<String> yourList  =  YourClass.getInstance().getYourList();
    }
}