Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android java更新所有类中的相同数组对象_Java_Android_Arraylist - Fatal编程技术网

Android java更新所有类中的相同数组对象

Android java更新所有类中的相同数组对象,java,android,arraylist,Java,Android,Arraylist,我的fragment类中有一个arraylist。我将数组传递给适配器。在适配器之后,我将数组传递给另一个片段。现在在当前片段中,我更改了数组对象的值。我希望在第一个片段数组中更改此更改。这怎么可能 请看示例代码: public class Fragment1 extends Fragment { ArrayList<Model> array = new ArrayList<>(); // send array to Adapter } public c

我的fragment类中有一个arraylist。我将数组传递给适配器。在适配器之后,我将数组传递给另一个片段。现在在当前片段中,我更改了数组对象的值。我希望在第一个片段数组中更改此更改。这怎么可能

请看示例代码:

public class Fragment1 extends Fragment {
    ArrayList<Model> array = new ArrayList<>();
    // send array to Adapter
}

public class Adapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    ArrayList<Model> array = new ArrayList<>();
    array.addAll(getArrayFromFragment1); // use this.array = getArrayFromFragment1 // I don't want to use (this) 
    // send array to Fragment2
}

public class Fragment2 extends Fragment {
    ArrayList<Model> array = new ArrayList<>();
    array.addAll(getArrayFromAdapter); // use this.array = getArrayFromAdapter // I don't want to use (this)
    // NOW! update object value from array --> array.get(10).setUserPhoneNumber(987654321)
    // i need update automatically Fragment1 array object 10 UserPhoneNumber
}
公共类Fragment1扩展了Fragment{
ArrayList数组=新的ArrayList();
//将阵列发送到适配器
}
公共类适配器扩展了RecyclerView.Adapter{
ArrayList数组=新的ArrayList();
array.addAll(getArrayFromFragment1);//使用this.array=getArrayFromFragment1//我不想使用(this)
//将数组发送到Fragment2
}
公共类Fragment2扩展了Fragment{
ArrayList数组=新的ArrayList();
array.addAll(getArrayFromAdapter);//使用this.array=getArrayFromAdapter//我不想使用(this)
//现在!从数组-->数组中更新对象值。获取(10)。设置用户电话号码(987654321)
//我需要自动更新Fragment1数组对象10 UserPhoneNumber
}
在instagram应用程序中:


fragment 1-->gragment 2-->浏览选项卡-->片段3类似一篇文章-->返回片段1相同的文章。如何处理这种关系?

我将使用一个单独的类和一个静态ArrayList,因此您只需要使用单个数据源,就可以从任何类/片段中读取数据

public class StaticUtils {
    public static ArrayList<Model> models = new ArrayList<>();
    //or make it private and add static getter/setter methods here
}

public class Fragment2 extends Fragment {
    StaticUtils.models.get(10).setUserPhoneNumber(987654321)
}
公共类StaticUtils{
publicstaticarraylistmodels=newarraylist();
//或者将其设置为私有,并在此处添加静态getter/setter方法
}
公共类Fragment2扩展了Fragment{
StaticUtils.models.get(10).setUserPhoneNumber(987654321)
}

谢谢您的回复。静态使用会导致内存问题吗?我在应用程序中使用了多个数组。我有20个碎片。并且每个阵列中都有单独的阵列。这不是一个问题吗?如果你关心内存,你可以把这些静态数组放在使用它们的任何类的最低级别的父类上。这样,当使用它们的类被实例化时,它们才在内存中。如果每个片段中的20个数组都是同一个数组的副本(如问题中的示例所示),那么就不会有问题,使用静态数组将更容易使用并减少内存使用。但是,如果它们是使用不同数据的独立阵列,那么此解决方案将不适用于您。