繁体   English   中英

startActivityForResult() 可以发送数据吗?

[英]Can startActivityForResult() send data?

我正在学习 android 并且很想知道startActivityForResult()是否也包含startActivity() () 的属性,即除了从被调用的活动接收数据之外,它是否可以用来发送像startActivity()这样的数据?

这是代码:
发送数据活动:

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

您的帮助将不胜感激!

谢谢

是的,startActivity 和 startActivityForResult,都将意图作为参数。 您可以在 Intent 中捆绑启动数据并将其传递给目标活动。

当您使用startActivityForResult()时,您还必须在调用startActivityForResult()的 Activity 中创建一个onActivityResult()方法。 onActivityResult()是您可以访问由您启动的Activity存储的 Intent 以获取结果的地方。

在随后启动的Activity中,您必须调用setResult()来存储存储数据的Intent

阅读此内容:http: //developer.android.com/reference/android/app/Activity.html#StartingActivities

编辑:误读你的问题。 为了传递一个 Bundle 选项,我会使用这个重载:

startActivity(Intent, int, Bundle)

我在 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
     }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM