2017-11-28 6 views
0

次のコードが1つのアクティビティから別のアクティビティに複数の値の情報を渡すことができない理由を理解できます。 2番目のアクティビティに当たって2番目の通過する要素(messageTwo)が認識されない限り、すべてが正常であるようです。ボタンで複数の変数を渡すクリック

public class ChooseYourRestaurant extends AppCompatActivity { 

public static final String EXTRA_MESSAGE = "com.example.macuser.biteresourcebuild."; 

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

    Intent intent = getIntent(); 
    String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE); 
    TextView textView = findViewById(R.id.setCalories); 
    textView.setText(message); 

} 

/** 
* Called when send button clicked 
*/ 
public void sendMessage(View view) { 
    Intent intent = new Intent(this, MenuSelector.class); 

    TextView editText = findViewById(R.id.autoCompleteTextView); 
    String message = editText.getText().toString(); 
    intent.putExtra(EXTRA_MESSAGE, message); 

    TextView textView1 = findViewById(R.id.calorieTarget); 
    String messageTwo = textView1.getText().toString(); 
    intent.putExtra(EXTRA_MESSAGE, messageTwo); 

    startActivity(intent); 

} 

}

そして、私は別のアクティビティ

public class MenuSelector extends AppCompatActivity { 
public static final String EXTRA_MESSAGE = "com.example.macuser.biteresourcebuild."; 


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

    Intent intent = getIntent(); 
    String message = intent.getStringExtra(ChooseYourRestaurant.EXTRA_MESSAGE); 

    TextView textView = findViewById(R.id.restaurantName); 
    textView.setText(message); 

    TextView textView1 = findViewById(R.id.calorieTarget); 
    textView.setText(messageTwo); 

} 
} 

この事ブレークに渡します。そして、私の人生のために、なぜ私は見ることができません。私はそれが本当に基本的なものであれば、少しだけコードを書いていますので、私を許してください。

+0

を使用して、それを取り出すことができますか? –

+0

'putExtra'メソッドの中で2つの異なる値に対して同じキーを使うことはできません。異なるキーを使用します。 – Nick

答えて

0

異なる値には異なるキーを使用する必要があります。例えば:EXTRA_MESSAGE1、EXTRA_MESSAGE2二活動で

public void sendMessage(View view) { 
    Intent intent = new Intent(this, MenuSelector.class); 

    TextView editText = findViewById(R.id.autoCompleteTextView); 
    String message = editText.getText().toString(); 
    intent.putExtra(EXTRA_MESSAGE1, message); 

    TextView textView1 = findViewById(R.id.calorieTarget); 
    String messageTwo = textView1.getText().toString(); 
    intent.putExtra(EXTRA_MESSAGE2, messageTwo); 

    startActivity(intent); 
    } 

は、あなたがputExtraがあるはずだと思ういけない、あなたは両方の活動にgetStringExtraを使用している

String message1 = intent.getStringExtra(ChooseYourRestaurant.EXTRA_MESSAGE1); 
String message2 = intent.getStringExtra(ChooseYourRestaurant.EXTRA_MESSAGE2); 
関連する問題