2011-01-10 9 views
3

J'ai un problème avec android, avec un bouton. J'ai programmé le bouton comme dans les pages des développeurs pour afficher un texte dans une vue texte lorsque je clique dessus, mais lorsque je lance mon application, je dois appuyer deux fois sur le bouton pour que cela se produise. Je pensais que cela pourrait avoir quelque chose à voir avec le focus, mais je ne suis pas sûr.Bouton cliquant deux fois

Aussi, lorsque je demande un thème (voir les styles et thèmes) Je dois même appuyer sur un bouton deux fois, non seulement sur le bouton indiqué ci-dessus, mais pour exemple aussi sur le bouton « oui » ou « non » dans le question de quitter l'application (via une boîte de dialogue)

J'ai cherché des forums pour cela, mais je n'ai pas trouvé la réponse que je recherchais. J'espère que quelqu'un peut me fournir une idée .

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    root = (LinearLayout) findViewById(R.id.root);  

((Button) findViewById(R.id.btnZoeken)).setOnClickListener(
      new Button.OnClickListener(){ 
       @Override 
       public void onClick(View arg0) { 
        zoekOpPostcodes(txtZoeken.getText().toString()); 
       } 

       private void zoekOpPostcodes(String zoekterm){ 

               //more irrelevant code 
             txtResultaat.setText(txtRes); 
          } 

//more irrelevant code 
private void quit() { 
    // prepare the alert box 
    AlertDialog.Builder abQuit = new AlertDialog.Builder(this); 

    // set the message to display 
    abQuit.setMessage("Weet je zeker dat je wil afsluiten?"); 

    // set a positive/yes button and create a listener 
    abQuit.setPositiveButton("Ja", new DialogInterface.OnClickListener() { 

     // do something when the button is clicked 
     public void onClick(DialogInterface arg0, int arg1) { 
      Toast.makeText(getApplicationContext(), "Tot ziens!", Toast.LENGTH_LONG).show(); 
      iRegionForAndroid.this.finish(); 
     } 
    }); 

    // set a negative/no button and create a listener 
    abQuit.setNegativeButton("Nee", new DialogInterface.OnClickListener() { 

     // do something when the button is clicked 
     public void onClick(DialogInterface arg0, int arg1) { 
      Toast.makeText(getApplicationContext(), "Afsluiten geannuleerd!", Toast.LENGTH_SHORT).show(); 
     } 
    }); 

    // display box 
    abQuit.show(); 

}

Si vous avez besoin de plus de mon code pour cela, « demander et vous recevrez » :) semble être quelque chose de mal avec les sections « code », il contient doensn't tout le code, mais des parties de celui-ci dans la section "code"

+2

Nous avons besoin de code. Je pense que vous devriez supposer que nous avons besoin et nous donner d'abord au lieu d'attendre. –

+0

Est-ce que cela se passe dans un émulateur ou une machine? Et oui, le code serait bien! –

+0

émulateur comme machine réelle – cvandingelen

Répondre

17

Vous avez peut-être raison d'être lié à focus.

Vous pourriez avoir android: focusableInTouchMode = "true", et il doit être faux. Le premier clic se concentre sur l'élément et le second invoque l'écouteur.

+1

Merci! J'ai trouvé ce post tout en ayant le même problème dans mon application ... J'ai mis des framelayouts pour agir comme des boutons, et j'ai dû double cliquer dessus. Il s'est avéré que j'avais focalisable en mode tactile allumé .. désactivé et les clics uniques ont fonctionné à nouveau. –

+0

Je suis votre réponse mais ça n'a pas marché. – Dimitri

+0

Merci! Cela m'a juste sauvé un énorme mal de tête. –

Questions connexes