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)
我一直在为代码的最后一行收到此错误。我试图将数据从qr代码传递到下一个活动,就像他们在here
中那样做我不知道如何解决这个问题,我尝试创建静态,但没有修复它。
答案 0 :(得分:1)
getStringExtra
是一种非静态方法。这意味着您需要一个对象来调用它。对于getStringExtra
,您需要一个Intent
对象来调用它,而不是类。
那你怎么得到一个意图对象?在活动中,您可以使用getIntent
来获取传递给活动的意图。现在你有了这个对象,你可以在返回的对象上调用getStringExtra
:
var obj = getIntent();
var someString = obj.getStringExtra(someArgs);
您可以将此简化为
var someString = getIntent().getStringExtra(someArgs);
答案 1 :(得分:0)
GetStringExtra用于在两个活动之间传递数据。您只放置了其中一项活动...您是否正确使用此功能?
此处提供更多信息:https://developer.xamarin.com/recipes/android/fundamentals/activity/pass_data_between_activity/
答案 2 :(得分:0)
将数据从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");