为什么 text2.Text = "message" 在我的代码中不起作用?

fre*_*vaz 0 c# android visual-studio xamarin.android

为什么 text2.Text = "message" 在我的代码中不起作用?我想按照下面的源代码在函数中使用它。我在 Visual Stduio 中使用 Mono for android 在 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 

    }
 }
Run Code Online (Sandbox Code Playgroud)

}

Pat*_*ins 5

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";   

    }
 }
Run Code Online (Sandbox Code Playgroud)