简体   繁体   English

OnActivityResult(蓝牙)中的 Intent 数据为空

[英]Intent data is null in OnActivityResult(Bluetooth)

Need help.需要帮忙。 I want to pass data to the CallBack method, but I get a null value.我想将数据传递给CallBack方法,但我得到一个空值。

Intent enableBt = new Intent(BluetoothAdapter.ActionRequestEnable);
enableBt.PutExtra("Resource", "bluetooth");
StartActivityForResult(enableBt, 1);

and

protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
    {
        base.OnActivityResult(requestCode, resultCode, data);
        var resource = data.GetStringExtra("Resource");

But data = null .但是data = null What is the problem?问题是什么?

Yes, we usually need to use requestCode and resultCode to filter the intent.是的,我们通常需要使用requestCoderesultCode来过滤intent。 Besides, we also need to use method SetResult to return the result.此外,我们还需要使用方法SetResult来返回结果。 You can refer to the following code:您可以参考以下代码:

The First Page第一页

Intent intent = new Intent(this, typeof(SecondActivity));
StartActivityForResult(intent, 0x001);

method: OnActivityResult方法:OnActivityResult

protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
    {
        base.OnActivityResult(requestCode, resultCode, data);

        if (requestCode == 0x001)
        {
            if (resultCode == Result.Ok)
            {
                string result = data.GetStringExtra("test");

                Toast.MakeText(this,"reslut is: " + result,ToastLength.Short).Show();
            }

        }
    }

The SecondPage第二页

var intent = new Intent();
intent.PutExtra("test", "test..123");
SetResult(Result.Ok, intent);
Finish();

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

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