我有一个包含两个 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/