我是android中的新编程。最近我一直在用Android工作室做一个项目。 在我的应用程序中,我正在为具有两个切换按钮的用户创建一个带有两个选项的活动。
用户可以选择按钮发出声音还是振动。
切换按钮工作正常,但当用户返回主活动并再次进入选项时,切换按钮不会保存用户选择的设置。
示例:
我希望有人可以帮我解决这个问题!
答案 0 :(得分:0)
Android具有持久存在活动(或片段)状态的功能。
如果您的活动被置于后台,它可能会在某些时候被销毁,而您无法控制它。这就是Android使用Bundles的原因。将数据存储在捆绑包中,然后在
中读回onCreate(Bundle savedInstanceState)
因此,在您的活动因任何原因而死亡之前,请存储重要的值:
protected void onSaveInstanceState(Bundle bundle) {
bundle.putInt(SOME_IMPORTANT_INT,mMyInt);
bundle.putString(SOME_IMPORTANT_STRING,mMyString);
}
创建活动时,我们必须阅读包中的内容(如果有任何内容):
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(savedInstanceState != null) {
mMyInt = savedInstanceState.getInt(SOME_IMPORTANT_INT);
mMyString = savedInstanceState.getString(SOME_IMPORTANT_STRING);
}
}
简而言之,您的活动 mMyInt 和 mMyString 值会恢复。
我们可能会对重新启动活动时有一点控制权。这是通过AndroidManifest文件中的android:configChanges属性完成的:
<activity
android:name=".ui.login.LoginActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
http://developer.android.com/guide/topics/resources/runtime-changes.html