从android中的另一个片段访问活动的字符串类型的arraylist

从android中的另一个片段访问活动的字符串类型的arraylist,android,android-activity,android-fragments,arraylist,Android,Android Activity,Android Fragments,Arraylist,我在一个活动中有一个字符串类型的arraylist。我需要从应用程序中的另一个片段访问此arraylist。如何从任何片段访问此arraylist。请给我一个解决方案。我不知道做这件事的程序。有人能帮我一下吗?在安卓系统中的活动中存储数据是个坏主意。活动可能会被破坏,您的本地数据(如ArrayList)可能无法访问。这就是为什么你需要将你的信息存储在其他地方。最常见的地方是数据库或首选项 查看此页面,他们会在其中推荐数据存储选项: 使用此方法存储您的阵列列表: public static bo

我在一个活动中有一个字符串类型的arraylist。我需要从应用程序中的另一个片段访问此arraylist。如何从任何片段访问此arraylist。请给我一个解决方案。我不知道做这件事的程序。有人能帮我一下吗?

在安卓系统中的活动中存储数据是个坏主意。活动可能会被破坏,您的本地数据(如ArrayList)可能无法访问。这就是为什么你需要将你的信息存储在其他地方。最常见的地方是数据库或首选项

查看此页面,他们会在其中推荐数据存储选项:


使用此方法存储您的阵列列表:

 public static boolean saveArray() {  
         SharedPrefernces sp=SharedPrefernces.getDefaultSharedPrefernces(this);  
         SharedPrefernces.Editor mEdit1= sp.edit();  
         mEdit1.putInt("Status_size",sKey.size()); /*sKey is an array*/   

        for(int i=0;i<sKey.size();i++) {  
            mEdit1.remove("Status_" + i);  
            mEdit1.putString("Status_" + i, sKey.get(i));    
        }  

        return mEdit1.commit();       
    }  
public静态布尔存储阵列(){
SharedPrefernces sp=SharedPrefernces.getDefaultSharedPrefernces(此);
SharedPrefernces.Editor mEdit1=sp.edit();
mEdit1.putInt(“Status_size”,sKey.size());/*sKey是一个数组*/

对于(inti=0;i,如果ArrayList是静态的,那么可以将其作为参数传递给片段实例化

在您的活动中:

Bundle b=new Bundle();
b.putStringArrayList('myarraylist',myarraylist)
MyFragment f=MyFragment.newInstance(b);
在MyFragment类中:

public MyFragment newInstance(b){
    MyFragment myfragment=new MyFragment();
    myFramgent.setArguments(b);
    return myFragment;
}

如果它是动态ArrayList,一个选项是在活动中获取对片段的引用,并调用set方法(您在片段或公共接口中定义的)在每次更改时传递数据。

将其保存在sahred PREF中。您可以使用putExtra方法在活动之间传递数据。这要求表示数组对象的类必须实现Parcelable接口。正如其他人建议的那样,您应该将数据存储到db或共享首选项中。如果操作正确,您可以n在片段-->((ActivityClassName)getActivity())上使用此代码。variableName
public MyFragment newInstance(b){
    MyFragment myfragment=new MyFragment();
    myFramgent.setArguments(b);
    return myFragment;
}