0

2 つのボタンがあり、最初のボタンが押されたときに 2 番目のボタンから onClick イベントを読み取る必要があり、vv はキーボードのようですどうやってするか?

  • 編集

いいえ、いいえ!最初にボタンがクリックされたかどうかを確認する必要はありません。最初または 2 番目のボタンが ACTION_DOWN 状態のときに、別の onClick イベントをリッスンする必要があります。

4

4 に答える 4

1

次のコードを試すことができます:

クラスでブール変数を宣言します。

private boolean button1IsPressed = false;

ボタン 1 に次のコードを記述します。

button1.setOnTouchListener(new OnTouchListener() {
     @Override
     public boolean onTouch(View v, MotionEvent event) {
        if(event.getAction() == MotionEvent.ACTION_DOWN) {
           button1IsPressed=true;
        } else if (event.getAction() == MotionEvent.ACTION_UP) {
           button1IsPressed=false;
        }
     }
  };

ボタン 2 では、次のことができます。

button2.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            if(button1IsPressed){
                  //Write your to do code here
            }
        }
    });
于 2013-03-04T09:14:05.760 に答える
0

ボタンがトグルボタンの場合、私が思うのは次の場合です。

public void onToggleClicked(View view) {
    // Is the toggle on?
    boolean on = ((ToggleButton) view).isChecked();

    if (on) {
        // Do something
    } else {
        // Disable vibrate
    }
}

ここでの主なものはisChecked()関数です。これは、どちらがチェックされているかをチェックするときに使用できるため、何かを実行します。2つのボタンのXMLで次のように設定できます。

android:onClick="onToggleClicked"次に、isCheckedを使用して、次のようにチェックされているものを判別します。

 boolean on1 = ((ToggleButton) view1).isChecked();
 boolean on2 = ((ToggleButton) view2).isChecked();

if (on1)
  //do something with button2
if (on2)
  //do something with button1

乾杯

于 2013-03-04T08:36:54.013 に答える
0

android-16/ApiDemos プロジェクトに、「Views -> Splitting Touches across Views」(SplitTouchView.java) というサンプル コードがあります。そのサンプルでは、​​エンクロージングには、 2 つのリスト ビューを同時にスクロールできるLinearLayout属性があります。android:splitMotionEvents="true"

Android 3.0 API の概要によると、この属性はこの API バージョンに表示されます。

以前は、一度に 1 つのビューだけがタッチ イベントを受け入れることができました。Android 3.0 では、タッチ イベントをビューやウィンドウに分割するサポートが追加されているため、異なるビューで同時にタッチ イベントを受け入れることができます。

于 2013-03-05T08:12:56.500 に答える
0

で試すことができonTouchListenersます。最初のボタンでは、ダウン イベントとアップ イベントのブール値を変更し、2 番目のボタンでは、ブール値が true の場合にのみアクションを実行します。

于 2013-03-04T08:34:22.083 に答える