繁体   English   中英

非静态字段,方法或属性'Android.Content.Intent.GetStringExtra(string)'需要对象引用

[英]An object reference is required for the non-static field, method, or property 'Android.Content.Intent.GetStringExtra(string)'

public override void OnCreate()
{
    base.OnCreate();

    //Find our audio and notificaton managers
    audioManager = (AudioManager)GetSystemService(AudioService);
    wifiManager = (WifiManager)GetSystemService(WifiService);

    string text = Intent.GetStringExtra ("MyData") ?? "Data not available";

错误CS0120:非静态字段,方法或属性'Android.Content.Intent.GetStringExtra(string)'需要对象引用(CS0120)

我在代码的最后一行不断收到此错误。 我正在尝试将数据从二维码传递到下一个活动,就像他们在这里所做的一样

我不确定如何解决此问题,并且我尝试将其创建为静态但无法解决。

getStringExtra是一个非静态方法。 这意味着您需要一个对象来调用它。 对于getStringExtra ,您需要一个Intent对象来调用它,而不是类。

那么,如何获得一个意图对象呢? 在活动中,可以使用getIntent获取传递给活动的意图。 现在有了对象,可以对返回的对象调用getStringExtra

var obj = getIntent();
var someString = obj.getStringExtra(someArgs);

您可以简化为

var someString = getIntent().getStringExtra(someArgs);

GetStringExtra用于在两个活动之间传递数据。 您只进行了一项活动...您是否正确使用了此功能?

此处的更多信息: https : //developer.xamarin.com/recipes/android/fundamentals/activity/pass_data_between_activity/

将数据从Activity1传递到Activity2,如下所示:

Activity1传递数据

Intent intent = new Intent(Activity1.this, Activity2.class);

intent.putExtra("key","value");

startActivity(intent);

Activity2获取数据,在Activity2 onCreate方法中编写以下代码

String data = getIntent().getStringExtra("key");

暂无
暂无

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

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