2012-01-08 4 views
6

Cela va être une vraie question noob, alors s'il vous plaît avoir pitié. J'essaye de créer une boîte de message sur un événement de clic de bouton dans Android. J'ai lu quelques exemples sur StackOverflow, mais je ne peux pas saisir le concept. Dans mon dossier main.xml, j'ai défini le bouton XML comme suit:Button Click Événement sur Android

<Button 
android:id="@+id/btnOK" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="Display Message" 
android:onClick="onBtnClicked" /> 

je lis sur l'un des messages que je dois enregistrer l'événement onClick dans la mise en page XML. C'est ce que je pensais avoir fait dans le code XML ci-dessus. Ensuite, dans mon fichier de code Java, j'ai écrit le code suivant:

package com.example.helloandroid; 

import android.app.Activity; 
import android.content.DialogInterface; 
import android.content.DialogInterface.OnClickListener; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.Toast; 

public class HelloAndroid extends Activity 
{ 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main);   
    } 

    public void onBtnClicked(View v) 
    { 
     if(v.getId() == R.id.btnOK) 
     { 
      MessageBox("Hello World"); 
     }  
    } 

    public void MessageBox(String message) 
    { 
     Toast.makeText(this, message, Toast.LENGTH_SHORT); 
    } 
} 

Pour moi, cela a du sens. Mais la boîte de message ne s'affiche pas lorsque je clique sur le bouton. À partir des importations de code ci-dessus, vous pouvez voir que j'ai déjà essayé quelques solutions sans succès. Ai-je peut-être manqué un auditeur? Je pensais que la définition dans le code XML créerait cela pour moi?

Merci à l'avance :-)

Répondre

6

changement

Toast.makeText(this, message, Toast.LENGTH_SHORT); 

À

Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); 

Le spectacle() vous fait que le fait d'afficher Toast, sinon vous créez seulement le Toast.

+0

Merci beaucoup! Cela a fonctionné! –

1

Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); - vous devez appeler la méthode show() comme vous venez de créer le toast sans le montrer.

+0

Merci beaucoup! –

0

l'activité doivent mettre en œuvre un View.OnClickListener, et mettre en œuvre la méthode onClick (Voir v)

dans la méthode onCreate, vous initialiser le bouton (après la setContentView d'instruction):

Button b = (Button) findViewById(R.id.btnOK); 
b.setOnClickListener(this); 

dans la méthode onClick:

public void onClick(View v) { 
    switch(v.getId()){ 
    case R.id.btnOK: 
     /* the instruccions of the button */ 
     break; 
    } 
} 
+0

Merci pour les commentaires! –

1
Toast.makeText(this, message, Toast.LENGTH_SHORT); 

cela est correct

Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); 
Questions connexes