2012-05-01 14 views
1

私のケースは少し特殊なのでここで説明します。 私は2つのアクティビティを持っています。最初は2つの編集と1つのボタンと2つ目のボタンだけです。 アクティビティ1のボタンを押すと、プログラムはテキスト編集の情報をアクティビティ2に送信し、それをアクティビティ2に表示します。 アクティビティ2では、ボタンはアクティビティ1に戻り、このように呼び出します。インテントでアクティビティ間でデータを渡す

Button next = (Button) findViewById(R.id.button2); 

    Intent myIntent = getIntent(); 
    String nume = myIntent.getStringExtra("nume"); 
    String prenume = myIntent.getStringExtra("prenume"); 
    next.setText(nume + " " + prenume); 

    next.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      Intent intent = new Intent(); 
      setResult(RESULT_OK, intent); 
      finish(); 
     } 

    }); 

初めて編集するときに情報を入力すると、アクティビティ2でOKと表示されますが、アクティビティ1に戻ってアクティビティ2の編集で新しい値を入力すると、最初に入力した値が表示されます。

問題は、ボタン1を押して2番目のアテンプトからアクティビティ2に渡すたびに、インテントによって渡された編集が更新されないことが原因と思われます。

+0

あなたは活動1に意図データを設定するコードを表示する必要があります。 – Timores

答えて

6

移動に第1、第2から:

Button next = (Button) findViewById(R.id.button2); 
next.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View view) { 
     Intent intent = new Intent(getApplicationContext(),Second.class); 
     intent.putExtra("Tag", "Value"); 
     startActivity(intent); 
     finish(); 
    } 

}); 

秒に最初に:

作成上
Button previous= (Button) findViewById(R.id.button); 
previous.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View view) { 
     Intent intent = new Intent(getApplicationContext(),First.class); 
     startActivity(intent); 
    } 

}); 

第二の活動:

Intent i = getIntent(); 
String val = i.getStringExtra("Tag"); 
6

extras Bundleを使用しているようですが、より良いアイデアになります。あなたはこれをこのように実装します。

活性1

Intent pass = new Intent(ACTION_NAME); 
Bundle extras = new Bundle(); 
extras.putString("nume", NUME_VAL); 
extras.putString("prenume", PRENUME_VAL); 
pass.putExtras(extras); 
startActivity(pass); 

活動2

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Bundle data = getIntent().getExtras(); 
    String nume = data.getStringExtra("nume"); 
    String prenume = data.getStringExtra("prenume"); 
} 
関連する問題