2013-03-04 96 views
0

我有2個按鈕,我需要從第二個按鈕時讀取onClick事件當第一個按下時現在和v.v.就像在鍵盤中一樣。怎麼做?Android按鈕onclick多點觸控

  • 編輯

不,不!我不需要檢查是否第一個按鈕被點擊或沒有。當第一個或第二個按鈕處於ACTION_DOWN狀態時,如果按第一個按鈕,我不能按第二個按鈕,但我有多點觸控,我需要再聽另一個onClick事件。

+0

那些切換按鈕? – g00dy 2013-03-04 08:32:51

+0

類似於ctrl + C鍵盤快捷鍵? – vokilam 2013-03-04 08:50:53

+0

目的是什麼?你的問題似乎並不完整。 – 2013-03-04 09:11:40

回答

0

你可以試試onTouchListeners。在第一個按鈕中,修改向下和向上事件的布爾值,在第二個按鈕中,只在布爾值爲true時執行操作。

0

如果按鈕是切換按鈕,我覺得是那麼的情況:

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

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

這裏最主要的是器isChecked()函數,它可以檢查哪一個被選中時使用,所以然後執行一些。您可以在兩個按鈕的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 

乾杯

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 
      } 
     } 
    }); 
+0

請閱讀我的編輯 – Leo 2013-03-04 14:59:05

+0

如果您想識別兩個觸摸,那麼可能需要實現ontouchlistener進行佈局,並檢查motionEvent對象的座標是否在按鈕邊界內,如果是,則處理該事件。 – 2013-03-05 05:49:22

0

有一個在Android的16/ApiDemos項目的示例代碼名爲「

private boolean button1IsPressed = false; 
下面的按鈕1碼

寫視圖 - >將視圖分割「(SplitTouchView.java)。在該示例中,封閉LinearLayout具有允許同時滾動兩個列表視圖的屬性android:splitMotionEvents="true"

根據Android 3.0 API Overview此屬性出現在這個版本的API:

以前只有單一視圖可以在同一時間接受觸摸事件。 Android 3.0增加了對視圖甚至窗口中的分離觸摸事件的支持,因此不同的視圖可以接受同時發生的觸摸事件。