android - 在 Android Activity 类中存储数据数组

标签 android android-activity

我有一个包含两个 EditText 字段和“添加”按钮的 Activity ,如下所示:

<EditText
    android:id="@+id/key"
    android:layout_width="0dp"
    android:layout_weight="1"
    android:layout_height="wrap_content"
    android:hint="Key"/>

<EditText
    android:id="@+id/value"
    android:layout_width="0dp"
    android:layout_weight="1"
    android:layout_height="wrap_content"
    android:hint="Value"/>

<Button
    android:id="@+id/add_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Add"/>

在我的 Activity 类中,我声明了一个数组(它的范围是 Activity 的类)来存储键值对:

public class ExampleActivity extends AppCompatActivity {

    List<Pair<String, String>> paramsArray = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    //...

每次用户填写字段并单击按钮时,都会向数组添加一个新条目。

我的问题是:
此 Activity 是否会被 Android 操作系统破坏(例如,因为另一个应用程序当前正在运行)并使用空数组重新创建?

一般如何在 Activity 中存储这样的东西?

最佳答案

Activity 将通过设备的简单旋转重新创建,这意味着如果您没有正确保存 Activity 状态或将数据保存在数据库中,您将丢失这些数据。

通常,您会希望使用 onSaveInstanceState(Bundle savedInstanceState) 方法保存此数据,并在使用 savedInstanceState 参数重新创建 Activity 时检索保存的数据onCreate() 方法。

有关更多信息,请阅读 Recreating an Activity.

关于android - 在 Android Activity 类中存储数据数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32485458/

相关文章:

android - SQLite 中如何创建多个主键?Android 中如何创建用户名已存在验证?

android - 如何深入链接到Android中的Amazon Shopping应用程序的产品页面?

android - 两个启动器 Activity

android - 注册 VOLLEY 和 KOTLIN 问题,有人能告诉我我遇到的问题是什么吗,错误 :

java - 在android中构建自动刷新方法

c# - 应用程序不会在其他计算机上运行/打开

java - Android 应用程序在设备和模拟器上崩溃(线程问题?)

android - 如何检查服务是否在后台/前台运行 Activity ?

java - IncompatibleClassChangeError : Class 'java.lang.VirtualMachineError' does not implement interface 'java.lang.CharSequence'

Android:在另一个 Activity 中重用存储为局部变量的 Activity