2011-10-04 6 views
0

Pourquoi text2.Text = "message" ne fonctionne pas dans mon code? Je veux travailler de cette façon dans une fonction voir dans le code. j'ai développé dans Visual Stduio avec Mono pour Android en C#Pourquoi text2.Text = "message" ne fonctionne pas dans mon code?

Le code source:

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

texte2 est hors de portée. Vous devez le déclarer au-dessus de la méthode si vous souhaitez le réutiliser dans un autre. Essayez quelque chose comme: – DaveHogan

Répondre

4

EditText text2 est déclarée non globale, mais la méthode. Mettez EditText text2; dans la classe.

devrait être comme ceci:

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

    } 
} 
+0

Merci travail très bien: P – Zav

+0

N'oubliez pas d'accepter la réponse si celui-ci travaille pour vous. –

1

text2 est défini à l'intérieur OnCreate donc received sait rien.

Vous devez définir texte2 comme un champ de classe, comme ceci:

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 

    } 
} 
Questions connexes