2017-04-11 16 views
-3

私は簡単な質問があります。 int値を復元するにはどうしたらいいですか?私はできることなく24時間以上働こうとした。 簡単な例:2つのアクティビティー、アクティビティーAには、アクティビティーBに切り替える人のボタンがあります。次に、デフォルトでは、左端にアクティビティーAに戻るためのフラッシュがあります。 Aにテキストフィールドを持っているとします。これを押すたびに、アクティビティBからアクティビティAに戻り値が削除されるたびに、カウンタなどをインクリメントします。変数値を復元する

は、私は本当に私はその質問のための情報を見つけることができますWHERE知りたい、私はすでにGoogleの上のすべてのこれらの研究を試みた:

1)リターン・アクティビティの後に変数の値を復元アンドロイドを

2)活性を回復アンドロイドhttps://developer.android.com/guide/components/activities/activity-lifecycle.html

そしてまた、Googleの少なくとも最初の2ページを試してみました:

状態

はすでにこれを試してみました。 もOnSaveInstances .. eccを試しました。 私はインディアンの人たちがYouTubeでこれを説明しているビデオも見ました。

私が知りたいと思うほとんどはアンドロイドの開発者の公式サイトがこの情報を書いた行です。

コード:

パブリッククラスMainActivityはAppCompatActivity {

private Button btn_increment; 
private Button btn_go_activity_B; 
private EditText textField; 

private int counter; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    btn_increment = (Button) findViewById(R.id.button1); 
    btn_go_activity_B = (Button) findViewById(R.id.button2); 
    textField = (EditText) findViewById(R.id.edit_message); 

    onClick(btn_increment); 

    btn_go_activity_B.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent intent = new Intent(getApplicationContext(), SecondActivity.class); 
      startActivity(intent); 
     } 
    }); 


} 

public void onClick(View v) { 
    btn_increment.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      counter++;    
      textField.setText(Integer.toString(counter)); 
     } 
    }); 
} 

既にonSaveIntanceStateとOnRestoreInstanceState方法を試して延びています。 このプログラムは、私がボタンbtn_incrementをクリックするたびにのEditTextにクリックの現在の数を示しているが、私は活動Bに移動し、左上隅に既定のボタンで戻ったときの値をすることができます

+1

あなたのお手伝いをするためにいくつかのコードをご記入ください –

+0

バンドルを見てください:http://stackoverflow.com/questions/768969/passing-a-bundle-on-startactivity –

+0

コードを投稿できますか? – Raghavendra

答えて

0

を行っています共有優先度を使用します。 Androidは、アプリケーションのデータを格納するさまざまな方法を提供しています。この方法の1つは、共有設定と呼ばれます。共有プリファレンスを使用すると、キーと値のペアの形式でデータを保存および取得できます。

設定値:

SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit(); 
editor.putString("name", "Elena"); 
editor.putInt("idName", 12); 
editor.commit(); 

取得値: -

SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); 
String restoredText = prefs.getString("text", null); 
if (restoredText != null) { 
    String name = prefs.getString("name", "No name defined");//"No name defined" is the default value. 
    int idName = prefs.getInt("idName", 0); //0 is the default value. 
} 
0

は、あなたが最初から意図を用いて第2の活動に入る予定があり、あなたがsetResultを使用しなければならないアクティビティAに戻ることを願って() 方法。この場合、アクティビティAのonActivityResultからコールバックを得ることができます。

アクティビティAは破棄されず、アクティビティAのすべての変数が使用可能になります。

関連する問題