我有3個活動SignIn(LAUNCHER),Main,StockTake(父活動:Main)。Android活動返回按鈕返回上一個活動,但沒有數據
的Android以下清單:
<application
......
<activity
android:name=".activities.MainActivity"
android:label="@string/title_activity_main">
</activity>
<activity android:name=".activities.SignInActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".activities.StockTakeActivity"
android:parentActivityName=".activities.MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".activities.MainActivity" />
</activity>
</application>
從主要活動的用戶輸入數據,並移動到盤點活動:
Intent intent = new Intent(this, StockTakeActivity.class);
startActivity(intent);
在盤點活動「返回」按鈕是在左上角可見在操作欄中。當後退按鈕'< - '按下時,應用程序將進入主活動,但主活動屏幕將從用戶輸入中清除。
在盤點活動:
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
我有...的onSave和OnRestore中...實施。 onRestore沒有被調用。
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putString(PART_NUMBER_KEY, String.valueOf(txtPartNumber.getText()));
savedInstanceState.putString(PART_DESCRIPTION_KEY, String.valueOf(txtPartDescription.getText()));
....
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
String partNumber = savedInstanceState.getString(PART_NUMBER_KEY);
String partDescription = savedInstanceState.getString(PART_DESCRIPTION_KEY);
.....
}
什麼我需要做的保留用戶輸入的主要業務,當用戶按下「< - 」後退按鈕?我在android 6 API 23上。
你必須設置有關該組件的數據(即編輯文本)在MainActivity的onResume()方法上。 – ManishNegi