我有一个CameraView类(带有onPreviewFrame),在每个传入帧上计算值1或0取决于帧亮度,我希望在每个传入帧上计算出的值将添加到ArrayList。 当我需要从MainActivity类中读取ArrayList中的数据时,问题就开始了。
如何创建不同类可以访问的列表?
我知道它相对简单,但我是java / android的新手,并试图了解它是如何工作的。
答案 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();
}
}