可以startActivityForResult()发送数据吗?

时间:2012-08-14 21:37:51

标签: java android eclipse android-intent start-activity

我正在学习机器人并且好奇地知道startActivityForResult()也包含startActivity()的属性,即除了从被调用活动接收数据之外,它是否可以用于发送startActivity()之类的数据?

这是代码:
SendData活动:

Intent data= new Intent(SendData.this, RecieveData.class);
Bundle check = new Bundle();

check.putString("UmerData", cheese);
medt.setText(cheese);
data.putExtras(check);
startActivityForResult(data, 5);

应该接收此活动中的数据(RecieveData Activity)

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.recievedata);
    Initializek();
    Bundle got = getIntent().getExtras();
    String ss= got.getString("UmerData");
    if(getIntent()!=null && ss!=null ) {
        rt1.setText("Is not Null");
    }
}

非常感谢您的帮助!

由于

3 个答案:

答案 0 :(得分:1)

使用startActivityForResult()时,您还必须在活动中创建一个名为onActivityResult()的{​​{1}}方法。 startActivityForResult()是您可以访问由onActivityResult()存储的Intent的结果。

在随后启动的Activity中,您必须致电Activity以存储您存储数据的setResult()

请仔细阅读:http://developer.android.com/reference/android/app/Activity.html#StartingActivities

修改:误读您的问题。为了通过一组选项,我会使用这个重载:

startActivity(Intent, int, Bundle)

答案 1 :(得分:0)

是的,startActivity& startActivityForResult,都将intent作为param。您可以将意图内的发布数据捆绑并传递给目标活动。

答案 2 :(得分:0)

我在 Xamarin Android 中工作,所以代码是 C#,但我遇到了同样的问题,只是我在不同的应用程序之间发送。我最终让它工作了,所以这是我的例子。

var intent = new Intent();
intent.SetComponent(new ComponentName("com.company.packageName", "com.company.packageName.activityName"));
intent.PutExtra(Intent.ExtraText, message);
StartActivityForResult(intent, 1);
// in app being started
protected override void OnResume()
{
    base.OnResume();

    Intent intent = Intent; // Equivalent to getIntent()
    if (intent != null)
    {
           string str = intent.GetStringExtra(Intent.ExtraText);
           if (str != null)
           {
              // Do stuff with str
           }
           else
           {
               //Show Error
           }  
         }
     else
     {
              //Show Error
     }
}