【问题标题】:How can I transfer the data between two activities in android [duplicate]如何在android中的两个活动之间传输数据[重复]
【发布时间】:2012-07-03 11:17:12
【问题描述】:
【问题讨论】:
标签:
android
android-activity
【解决方案1】:
我假设您已经编写了两个 Activity 类:ActivityA 和 ActivityB,并且您已经为 ActivityA 中的按钮编写了 onClickListener。
要在两个 Activity 之间传递数据,您需要使用启动 Activity 的 Intent 类,并且在 ActivityB 的 startActivity 之前,您可以通过 Extra 对象使用数据填充它。在您的情况下,它将是 editText 的内容。
ActivityA onClickListener
Intent i = new Intent(getBaseContext(),ActivityB.class);
//Set the Data to pass
EditText txtInput = (EditText)findViewById(R.id.txtInput);
String txtData = txtInput.getText().toString();
i.putExtra("txtData", txtData);
startActivity(i);
现在在 ActivityB 中,您可以在 onCreate 中编写代码来获取启动它的 Intent 并提取传递给它的数据。
ActivityB onCreate
Intent i = getIntent();
//The second parameter below is the default string returned if the value is not there.
String txtData = i.getExtras().getString("txtData","");
EditText txtInput2 = (EditText)findViewById(R.id.txtInput2);
txtInput2.setText(txtData);
希望这会有所帮助。
【解决方案2】:
当您开始 Activity B 时,以 Intent Extras 形式发送数据。
在活动 A 中,当您开始活动 B 时,
Intent activityBstartIntent = new Intent(getApplicationContext(), ActivityB.class);
activityBstartIntent.putExtra("key", editTextA.getText().toString());
startActivity(activityBstartIntent);
在 ActivityB 的 onCreate() 中这样做
if(getIntent().getExtras() != null) {
editTextB.setText(getIntent().getExtras().getString("key");
}
希望对您有所帮助。
【解决方案3】:
通过使用意图,我们可以像活动一样跨组件传递数据。
在您单击按钮的第一个活动中,您需要编写此获取发送数据到第二个活动。
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.edit_message);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
EXTRA_MESSAGE 是您活动中的字符串常量。
第二个活动你会收到这样的消息
意图意图 = getIntent();
字符串消息 = intent.getStringExtra(MyFirstActivity.EXTRA_MESSAGE);
Here解释的很清楚。
【解决方案4】:
是的,有人可以为此提供代码,Google 甚至将它作为许多教程和示例代码的主题。尝试阅读Intents。