2011-01-10 21 views
3

ボタンでアンドロイドに問題があります。クリックしたときに ボタンが開発者ページのように テキストビューに表示されていたようにプログラムしましたが、アプリケーションを実行すると ボタンを2回押す必要があります。私はそれが何かを持っているかもしれないと思ったフォーカスのためには が、私はわからない。ボタンを2回クリックする

また、テーマ(スタイルとテーマを参照)を適用すると、私はさらに ボタンを2回押す必要があります。上記のボタンだけでなく、 の場合は、「はい」または「いいえ」ボタンも質問 アプリケーションを終了する(ダイアログを介して)

私はフォーラムを検索しましたが、 答えを探していませんでした。誰かが私に アイデアを提供してくれることを願っています。

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(); 

}

あなたはこのために私のコードのいずれかのより多くを必要とする場合は、「尋ねると、あなたが受けなければならない」:) 「コード」セクションに何か問題であるように思わ、それが含まれていdoensn'tすべてのコードが「コード」セクションの下に表示されます

+2

コードが必要です。私は、あなたが待っているのではなく、最初に私たちに必要なものを与えてくれると思います。 –

+0

これはエミュレータまたは実際のマシンで起こっていますか?そして、はい、コードは素晴らしいだろう! –

+0

実機とエミュレータの両方 – cvandingelen

答えて

17

これはフォーカスに関連している可能性があります。

あなたはandroid:focusableInTouchMode = "true"とし、falseである必要があります。最初のクリックは項目にフォーカスし、2番目のクリックはリスナーを呼び出します。

+1

ありがとう!私はこの記事を私のアプリで同じ問題を抱えているのを見つけました...私はボタンとして動作するようにframelayoutsを設定し、私はそれらをダブルクリックしなければなりませんでした。私はタッチモードをオンにすることに焦点を当てていたことが判明。それを無効にして、シングルクリックが再び働いた。 –

+0

私はあなたの答えに従うが、うまくいかなかった。 – Dimitri

+0

ありがとう!これはちょうど私に大きな頭痛を救った。 –

関連する問題