首页 > 解决方案 > OnActivityResult(Bluetooth) 中的 Intent 数据为空

问题描述

需要帮忙。我想将数据传递给该CallBack方法,但我得到一个空值。

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

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

但是data = null。问题是什么?

标签: c#androidxamarinandroid-intentbluetooth

解决方案


是的,我们通常需要使用requestCoderesultCode过滤意图。此外,我们还需要使用方法SetResult来返回结果。您可以参考以下代码:

第一页

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

方法: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();
            }

        }
    }

第二页

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

推荐阅读