我的onCreateOptionMenu
设置(来自Activity
),用于更新当前Activity
的用户界面。
在更新首选项时启动首选项,调用活动需要在首选项基础上更新UI。
Snippet Preference如何调用: -
Intent in = new Intent(this, PrefsSecondaryActivity.class);
in.putExtra("caller", "sx");
startActivityForResult(in, SECSETTINGS);
抓住以获取UI更新
if (requestCode == SECSETTINGS) {
Intent intent = getIntent();
finish();
startActivity(intent);
}
我曾经使用上面的代码片段重新创建该活动。在onCreate()
的{{1}}内。我检查了首选项名称 - 值对并更新了完全正常工作的用户界面。
因为我正在销毁和重新创建活动,这些活动会使整个新活动内部没有任何值。
我尝试在调用首选项时设置Activity
,并在捕获onSavedInstanceState()
onRestoreInstanceState()
“首选项”中的设置值可以很好地更改SLOC。所以现在不是最好的方式。
欢迎任何建议。
答案 0 :(得分:0)
我就是这样做的(我在我的Activity中声明了一些静态变量):
@Override
protected final void onRestoreInstanceState(final Bundle inState)
{
// Restore the saved variables.
isChartShown = inState.getBoolean("chart", false);
qIndex = inState.getInt("index");
scores = inState.getIntArray("scores");
}
@Override
protected final void onSaveInstanceState(final Bundle outState)
{
// Save the variables.
outState.putBoolean("chart", isChartShown);
outState.putInt("index", qIndex);
outState.putIntArray("scores", scores);
}
此代码适用于我。我用它来保存一些用于在旋转时保持值的状态变量。
<强> [编辑] 强>
否则,如果您强制完成应用,那么您将选择共享偏好:
只需在完成之前保存您的值,然后在onCreate中重新加载它们。