2017-05-24 16 views
0

私は3つのアクティビティSignIn(LAUNCHER)、Main、StockTake(親アクティビティ:メイン)を持っています。以下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); 
    ..... 
} 

たときに、ユーザーを押して「< - 」戻るボタン?私はアンドロイド6 API 23になっています。

+0

を作りましたそのコンポーネントのデータ(つまり、 editText)をMainActivityのonResume()メソッドに追加します。 – ManishNegi

答えて

0

データを保存する共有設定を試すことができます。 初期

SharedPreferences sharedpreferences; 
sharedpreferences = getSharedPreferences("pref", Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = sharedpreferences.edit(); 

あなたは

sharedpreferences = this.getSharedPreferences("pref", Context.MODE_PRIVATE); 
String lanSettings = sharedpreferences.getString("name", null); 
0

は、マニフェストファイルからandroid:parentActivityName=".activities.MainActivity"を削除して、これを追加し、それを必要とする

editor.putString("name,"xyz"); 

はそれを使用してコードにコンテンツを追加します。 StockTakeActivity

@Override 
public boolean onSupportNavigateUp() { 
    finish(); 
    return true; 
} 
0

私はアンドロイドの除去終わる:あなたが設定する必要がありますマニフェストファイルからparentActivityName = "activities.MainActivity。" とonOptionsItemSelectedに以下の変更(...)

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case android.R.id.home: 
      //NavUtils.navigateUpFromSameTask(this); 
      finish(); 
      return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 
関連する問題