我有3个活动SignIn(LAUNCHER),Main,StockTake(父母活动:Main)。
下面的Android Manifest:
<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);
在StockTake活动中,“后退”按钮显示在操作栏的左上角。当后退按钮'&lt; - '按下时,应用程序将进入主活动,但主活动屏幕将从用户输入中清除。
在StockTake活动中:
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);
.....
}
当用户按下“&lt; - ”后退按钮时,我需要做什么才能在主要活动中保留用户输入?我在android 6 API 23上。
答案 0 :(得分:0)
您可以尝试使用共享首选项来存储数据,当您返回时可以检索它们。 初始化
compile 'org.springframework.boot:spring-boot-starter-jdbc'
在代码中添加内容
SharedPreferences sharedpreferences;
sharedpreferences = getSharedPreferences("pref", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedpreferences.edit();
在您需要时使用
editor.putString("name,"xyz");
答案 1 :(得分:0)
从清单文件中删除android:parentActivityName=".activities.MainActivity"
并将其添加到StockTakeActivity
@Override
public boolean onSupportNavigateUp() {
finish();
return true;
}
答案 2 :(得分:0)
我最终从清单文件中删除了android:parentActivityName =“。activities.MainActivity”并将下面的更改改为onOptionsItemSelected(...)
..\release