Android 应用仅读取来自 intent 的最后一条额外消息
Android App only reading last extra message from intent
我正在尝试将三个消息从一个 activity 传递到另一个。但是 Android Studio 仅查看最后创建的 "putExtra" 并将其应用于所有输出。我的代码如下。
第一个 activity 创建意图的地方:
public void buttonOnClick_Goals(View v) {
Intent intent = new Intent(v.getContext(), Goals.class);
EditText benchpress = (EditText) findViewById(R.id.txtBenchpress);
String benchpress_message = benchpress.getText().toString();
intent.putExtra(BENCH_PR, benchpress_message);
EditText squat = (EditText) findViewById(R.id.txtSquat);
String squat_message = squat.getText().toString();
intent.putExtra(SQUAT_PR, squat_message);
EditText deadlift = (EditText) findViewById(R.id.txtDeadlift);
String deadlift_message = deadlift.getText().toString();
intent.putExtra(DEAD_PR, deadlift_message);
startActivity(intent);
}
第二个 activity,其中文本字段设置为传递的消息:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_goals);
Intent intent = getIntent();
String bench_message = intent.getStringExtra(PersonalRecords.BENCH_PR);
String squat_message = intent.getStringExtra(PersonalRecords.SQUAT_PR);
String dead_message = intent.getStringExtra(PersonalRecords.DEAD_PR);
TextView benchText = (EditText)findViewById(R.id.txtbenchpr);
benchText.setText(bench_message, TextView.BufferType.EDITABLE);
TextView squatText = (EditText)findViewById(R.id.txtsquatpr);
squatText.setText(squat_message, TextView.BufferType.EDITABLE);
TextView deadText = (EditText)findViewById(R.id.txtdeadpr);
deadText.setText(dead_message, TextView.BufferType.EDITABLE);
}
确保 BENCH_PR、SQUAT_PR 和 DEAD_PR 具有不同的值!
我正在尝试将三个消息从一个 activity 传递到另一个。但是 Android Studio 仅查看最后创建的 "putExtra" 并将其应用于所有输出。我的代码如下。
第一个 activity 创建意图的地方:
public void buttonOnClick_Goals(View v) {
Intent intent = new Intent(v.getContext(), Goals.class);
EditText benchpress = (EditText) findViewById(R.id.txtBenchpress);
String benchpress_message = benchpress.getText().toString();
intent.putExtra(BENCH_PR, benchpress_message);
EditText squat = (EditText) findViewById(R.id.txtSquat);
String squat_message = squat.getText().toString();
intent.putExtra(SQUAT_PR, squat_message);
EditText deadlift = (EditText) findViewById(R.id.txtDeadlift);
String deadlift_message = deadlift.getText().toString();
intent.putExtra(DEAD_PR, deadlift_message);
startActivity(intent);
}
第二个 activity,其中文本字段设置为传递的消息:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_goals);
Intent intent = getIntent();
String bench_message = intent.getStringExtra(PersonalRecords.BENCH_PR);
String squat_message = intent.getStringExtra(PersonalRecords.SQUAT_PR);
String dead_message = intent.getStringExtra(PersonalRecords.DEAD_PR);
TextView benchText = (EditText)findViewById(R.id.txtbenchpr);
benchText.setText(bench_message, TextView.BufferType.EDITABLE);
TextView squatText = (EditText)findViewById(R.id.txtsquatpr);
squatText.setText(squat_message, TextView.BufferType.EDITABLE);
TextView deadText = (EditText)findViewById(R.id.txtdeadpr);
deadText.setText(dead_message, TextView.BufferType.EDITABLE);
}
确保 BENCH_PR、SQUAT_PR 和 DEAD_PR 具有不同的值!