如何在android中的两个活动之间传输数据

时间:2012-07-03 02:56:30

标签: android android-activity

  

可能重复:
  How do I pass data between activities in Android?

我有两个活动A和B.活动A有一个editText和一个按钮。活动B有一个editText,当我在A的editText中键入内容并单击它应该在editText2中显示的按钮。任何人都可以为此提供代码。

提前致谢!!!

4 个答案:

答案 0 :(得分:15)

我假设你写了两个活动类:ActivityA& ActivityB您已为onClickListener中的按钮撰写了ActivityA

要在两个活动之间传递数据,您需要使用通过其启动Activity的Intent类,并且在startActivity for ActivityB之前,您可以通过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);

希望这有帮助。

答案 1 :(得分:5)

当你开始活动时,B会在意图附加内容中发送数据。

在活动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");
}

希望有所帮助。

答案 2 :(得分:3)

通过使用intent,我们可以跨活动等组件传递数据。 在您点击按钮的第一个活动中,您需要将此发送数据写入第二个活动。

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是您活动中的字符串常量。

第二项活动你会得到这样的信息

Intent intent = getIntent();

String message = intent.getStringExtra(MyFirstActivity.EXTRA_MESSAGE);

Here它的解释非常清楚。

答案 3 :(得分:0)

是的,有人可以为此提供代码,Google甚至将其作为许多教程和示例代码的主题。试着阅读Intents