Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.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
Java 如何在Android中从MainActivity保存ArrayList?_Java_Android_Arraylist_Save - Fatal编程技术网

Java 如何在Android中从MainActivity保存ArrayList?

Java 如何在Android中从MainActivity保存ArrayList?,java,android,arraylist,save,Java,Android,Arraylist,Save,我有一个数组(这里称为arrayMain),我需要在添加项目时保存该数组,并在应用程序启动时加载该数组。我对此进行了彻底的研究,看到了使用gson和SharedPreferences之类的解决方案,但在我的程序中两者都不起作用。我认为这些都不起作用,因为解决方案假设您没有将其放在MainActivity中,而是放在另一个类中 我对编程非常陌生,而且还在学习。正因为如此,请包括我将要做的一切(包括像进口的东西),因为我不知道这一切都很好。因为我不知道我的很多代码是如何交互的,所以我几乎包含了所有代

我有一个数组(这里称为arrayMain),我需要在添加项目时保存该数组,并在应用程序启动时加载该数组。我对此进行了彻底的研究,看到了使用gson和SharedPreferences之类的解决方案,但在我的程序中两者都不起作用。我认为这些都不起作用,因为解决方案假设您没有将其放在MainActivity中,而是放在另一个类中

我对编程非常陌生,而且还在学习。正因为如此,请包括我将要做的一切(包括像进口的东西),因为我不知道这一切都很好。因为我不知道我的很多代码是如何交互的,所以我几乎包含了所有代码,这样我就不会遗漏任何内容。谢谢你的帮助

代码:

public类MainActivity扩展了AppCompatActivity{
公共静态阵列适配器mItemViewerAdapter;
公共静态ArrayList arrayMain=新ArrayList();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//获取阵列列表
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
如果(savedInstanceState==null){
getSupportFragmentManager().beginTransaction()
.add(R.id.container,新的占位符片段()).commit();
}
//***返回StringMain的弹出字段(我省略了)***
ArrayMain.add(StringMain);
//集合数组列表
公共静态类占位符片段扩展了片段{
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
斜接导引头=
新阵列适配器(
getActivity(),
R.layout.list\u item\u itemList,
R.id.list\u item\u itemList\u textview,
阿里曼
);
视图根视图=充气机。充气(R.layout.fragment_main,容器,错误);
ListView ListView=(ListView)rootView.findViewById(R.id.ListView\u ItemList);
setAdapter(mItemViewerAdapter);
返回rootView;
}
}
}

首先,您必须理解Json的概念。如何将字符串转换为Json,反之亦然。如何使用Json数组和Json对象。 然后,您会发现在共享首选项中存储json“字符串”数据非常简单。从共享首选项中获取字符串数据,并根据需要将其转换为json数组或对象。 在要在数组列表中加载数据的类中使用此数据。 你必须想一想,这不是直接执行,
您想要存储什么数据,以及如何在类中使用存储的数据。

为什么不将您的
arrayMain
保存到数据库中?
public class MainActivity extends AppCompatActivity {

public static ArrayAdapter<String> mItemViewerAdapter;

public static ArrayList<String> arrayMain = new ArrayList<String>();


@Override
protected void onCreate(Bundle savedInstanceState) {


// Get ArrayList


    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if (savedInstanceState == null) {

        getSupportFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceHolderFragment()).commit();
    }


    // *** POPUP field (that I left out) that returns StringMain ***
        ArrayMain.add(StringMain);

// Set ArrayList

public static class PlaceHolderFragment extends Fragment {

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        mItemViewerAdapter =
                new ArrayAdapter<String>(
                        getActivity(),
                        R.layout.list_item_itemList,
                        R.id.list_item_itemList_textview,
                        arrayMain
                );

        View rootView = inflater.inflate(R.layout.fragment_main, container, false);

        ListView listView = (ListView) rootView.findViewById(R.id.listview_ItemList);
        listView.setAdapter(mItemViewerAdapter);
        return rootView;

    }

}

}