为什么text2.Text =“message”在我的代码中不起作用? 我想在函数中以这种方式工作,参见代码。 我在Visual Stduio中开发了Mono for android in C#
源代码:
using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
namespace ChatClient_Android
{
[Activity(Label = "ChatClient_Android", MainLauncher = true, Icon = "@drawable/icon")]
public class MainChat : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
// Get our button from the layout resource,
// and attach an event to it
EditText text2 = FindViewById<EditText>(Resource.Id.text2);
}
private void recieved()
{
text2.Text = "mesage"; // The text2 does not existe in this context
}
}
}
答案 0 :(得分:4)
EditText text2
不是全局的,而是声明方法。将EditText text2;
放在课堂上。
应该是这样的:
public class MainChat : Activity
{
EditText text2; // <----- HERE
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
text2 = FindViewById<EditText>(Resource.Id.text2);
}
private void recieved()
{
text2.Text = "mesage";
}
}
答案 1 :(得分:1)
text2
在OnCreate
内定义,因此received
对此一无所知。
您需要将text2定义为类字段,如下所示:
public class MainChat : Activity
{
private EditText text2;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
// Get our button from the layout resource,
// and attach an event to it
text2 = FindViewById<EditText>(Resource.Id.text2);
}
private void recieved()
{
text2.Text = "mesage"; // The text2 does not existe in this context
}
}