3

私はアンドロイドで小さなクエリを持っています。3つのボタンがあり、1つのボタンをクリックするとAlertDialogボックスが表示され、2番目のボタンをクリックすると[リスト]ダイアログボックスが表示され、3番目のボタンをクリックするとAndroidのOnScreenキーボードが切り替わります。

私の問題は、最初のボタンを呼び出すことができ、2番目と3番目のボタンをクリックしても応答しないことです。また、それぞれのクリックイベント関数にブレークポイントを挿入して確認したところ、制御フローが関数内にまったく入っていません。 。単純なことですが、楽しみをスキップして、メインのOnCreate関数の最後に移動します。

これが最初の2つのボタンに使用したコードです...

        Button btn=(Button) findViewById(R.id.button1);
    btn.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            // TODO Auto-generated method stub
            ShowListDialog();
        }
    });

    btn=(Button) findViewById(R.id.btnShowList);
    btn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            ShowOneDialog();
        }
    });

関数ShowOneDialog()およびShowListDialog()関数を呼び出していますが、関数が不要であり、3番目のボタンクリックイベントが以下にあることを願っています...

btn =(ボタン)findViewById(R.id.btnToggle); btn.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            InputMethodManager inmgr=(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            inmgr.toggleSoftInput(0, 0);
        }
    });
4

3 に答える 3

1

別のものを作成し、OnClickListenerこのリスナーをすべてのボタンに次のように追加します。

 Button btn=(Button) findViewById(R.id.button1); 
 Button btn1=(Button) findViewById(R.id.btnShowList);
 ....

 btn.setOnClickListener(buttonclickhandler);
 btn1.setOnClickListener(buttonclickhandler);
 ....

 View.OnClickListener buttonclickhandler = new View.OnClickListener() {
    public void onClick(View v) {
       @Override
        public void onClick(View v)
        {
            // TODO Auto-generated method stub
            switch(v.getId())
            {
            case R.id.button1:ShowListDialog();
                break;
            case R.id.btnShowList: ShowOneDialog();
            break;
            }
        }
    }
  }
于 2013-01-12T04:41:02.020 に答える
0
Button btn=(Button) findViewById(R.id.button1); 

btnをbutton1として設定したので、そのボタンにリスナーをアタッチしただけです。これが、他のボタンが何もしていない理由です。

于 2013-01-12T04:38:55.253 に答える
0

このコードを試してください

Button btn1=(Button)findViewById(R.id.button1);
btn1.setOnClickListener(new View.OnClickListener()
{
    @Override
    public void onClick(View v)
    {
        // TODO Auto-generated method stub
        ShowListDialog();
    }
});

Button btn2 = (Button)findViewById(R.id.btnShowList);
btn2.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        ShowOneDialog();
    }
});
于 2013-01-12T06:06:13.253 に答える