将数据从Mainactivity发送到Mainactivity2

时间:2015-06-23 19:48:28

标签: android android-activity

我想了解如何将消息数据从1个活动发送到另一个活动并接收 onActivityResult

中的数据

我不确定这是否正确,但希望你能以正确的方式向我展示。

Mainactivity 在按钮1上单击

Intent returnIntent = new Intent();
returnIntent.putExtra("demo1");
setResult(RESULT_OK,returnIntent);
按钮2上的

点击

Intent returnIntent = new Intent();
returnIntent.putExtra("sarah22");
setResult(RESULT_OK,returnIntent);

Mainactivity2

protected void onActivityResult(int requestCode, int resultCode, Intent data) {


            if ("demo1") {

                Context context = getApplicationContext();
                CharSequence text = "button1 demo1 received";
                int duration = Toast.LENGTH_SHORT;

                Toast toast = Toast.makeText(context, text, duration);
                toast.show();

            }



if ("sarah22") {

                Context context = getApplicationContext();
                CharSequence text = "Button2 sarah22 received";
                int duration = Toast.LENGTH_SHORT;

                Toast toast = Toast.makeText(context, text, duration);
                toast.show();

            }
        }
    }

2 个答案:

答案 0 :(得分:0)

我只想再次澄清自己。我希望使用这样的东西:

Intent returnIntent = new Intent();
returnIntent.putExtra("demo1");
setResult(RESULT_OK,returnIntent);

或者

Intent intent = new Intent(MainActivity.this, New2.class);
                intent.putExtra("demo1", "demo1");
                startActivity(intent);

你看到demo1,你通常会在那里放一个请求代码,但是如何将它发送到activity2和他们的

活动2中的

if ("demo1") {

                Context context = getApplicationContext();
                CharSequence text = "button1 demo1 received";
                int duration = Toast.LENGTH_SHORT;

                Toast toast = Toast.makeText(context, text, duration);
                toast.show();

            }

你看到 if(" demo1"){如果找到这个字符串然后显示toast

答案 1 :(得分:0)

你应该这样:

          Intent intent = new Intent(getBaseContext(), Second.class);
          intent.putExtra("ID", "I love stackoverflow");
          startActivityForResult(intent)

在第二个活动中,您可以获取数据,

         String id = intent.getStringExtra("ID");

用它做你想做的事。要返回第一个活动,请使用setResult(OK)并调用finish。

  Intent returnIntent = new Intent();
  setResult(RESULT_CANCELED, returnIntent);
  finish();

在这种情况下,onActivityResult()的第一个活动将触发,你可以在那里处理返回的值。

来源: Using intents to pass data between activities in android

http://developer.android.com/training/basics/intents/result.html

How to manage `startActivityForResult` on Android?