2010-03-04 3 views
1

Je veux griller du texte saisi dans une texbox en utilisant un événement asynchrone, par exemple. appuie sur le bouton. Il compile sans erreur mais rien ne se passe quand on appuie sur le bouton. De ce que j'ai pu rassembler sur le forum, mon contexte est faux. Est-ce que quelqu'un peut m'aider? Ci-dessous le code:getApplicationContext() ne fonctionne pas pour un événement asynchrone

mSendButton = (Button)findViewById(R.id.button_send); 
mSendButton.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     TextView view = (TextView)findViewById(R.id.edit_text_out); 
     String message = view.getText().toString(); 
     if (message == "bla") { 
      Toast.makeText(getApplicationContext(), "Bla was entered", Toast.LENGTH_LONG).show(); 
     } 
     else { 
      Toast.makeText(getApplicationContext(), "Bye ", Toast.LENGTH_SHORT).show(); 
     } 
    } 
}); 

Répondre

0

Êtes-vous sûr de ne pas avoir de trace de pile?

Votre code semble correct, du moins s'il s'agit d'une activité.

Suggestions:

  • essayer avec getBaseContext() au lieu de getApplicationContext()
  • look pour traces de pile
  • essayer avec Toast.makeText (MyActivityClass.this, "Au revoir", Toast.LENGTH_SHORT) .montrer();
+0

Ou, mieux encore, il suffit d'utiliser le '' Activity' comme context', plutôt que d'essayer 'getBaseContext()' (non recommandé) ou 'getApplicationContext()' (* vraiment * non recommandé). – CommonsWare

+0

Merci, dystroy. J'ai trouvé l'erreur plus haut dans le code. L'appel à la fonction a été masqué. Donc, il n'atteignait jamais la déclaration «si» en premier lieu. – Juan

2

Essayez ceci:

mSendButton = (Button)findViewById(R.id.button_send); 
mSendButton.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     TextView view = (TextView)findViewById(R.id.edit_text_out); 
     String message = view.getText().toString(); 
     if (message == "bla") { 
      Toast.makeText(getActivity(), "Bla was entered", Toast.LENGTH_LONG).show(); 
     } 
     else { 
      Toast.makeText(getActivity(), "Bye ", Toast.LENGTH_SHORT).show(); 
     } 
    } 
}); 

ou:

mSendButton = (Button)findViewById(R.id.button_send); 
mSendButton.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     TextView view = (TextView)findViewById(R.id.edit_text_out); 
     String message = view.getText().toString(); 
     if (message == "bla") { 
      Toast.makeText(getContext(), "Bla was entered", Toast.LENGTH_LONG).show(); 
     } 
     else { 
      Toast.makeText(getContext(), "Bye ", Toast.LENGTH_SHORT).show(); 
     } 
    } 
}); 
Questions connexes