如何从 Android 的 MainActivity 中保存 ArrayList?
Posted
技术标签:
【中文标题】如何从 Android 的 MainActivity 中保存 ArrayList?【英文标题】:How do you save an ArrayList from MainActivity in Android? 【发布时间】:2016-07-21 02:37:39 【问题描述】:我有一个数组(此处称为 arrayMain),在添加项目时需要保存它,并在应用程序启动时加载它。我已经对此进行了彻底的研究,看到了使用 gson 和 SharedPreferences 之类的解决方案,但在我的程序中都不起作用。我相信这些不起作用,因为解决方案假设您没有将它放在 MainActivity 中,而是放在不同的类中。
我对编程很陌生,并且还在学习。因此,请包括我必须做的所有事情(包括导入东西之类的事情),因为我不太了解这一切。因为我不知道我的很多代码是如何交互的,所以我几乎包含了所有代码,这样我就不会遗漏任何东西。感谢您的帮助。
代码:
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;
【问题讨论】:
为什么不将您的arrayMain
保存在数据库中?
【参考方案1】:
首先,您必须了解 Json 的概念。如何将字符串转换为 json,反之亦然。如何使用 json 数组和 json 对象。 然后,您会发现将 json“字符串”数据存储在共享首选项中的方法非常简单。从共享首选项中获取字符串数据,并根据您的需要将其转换为 json 数组或对象。 在要在数组列表中加载数据的类中使用此数据。 这不是直接执行,你必须思考, 您想存储什么数据以及如何在班级中使用存储的数据。
【讨论】:
以上是关于如何从 Android 的 MainActivity 中保存 ArrayList?的主要内容,如果未能解决你的问题,请参考以下文章
如何从alertdialog更改mainactivity中的可见性edittext
当我单击警报对话框中列出的项目时,Android Toast 没有出现
如何使用 MediaProjection API 从后台服务类中截取屏幕截图?
java.lang.IllegalArgumentException:尝试删除从未添加的 OnFrameMetricsAvailableListener