我有2個按鈕,我需要從第二個按鈕時讀取onClick事件當第一個按下時現在和v.v.就像在鍵盤中一樣。怎麼做?Android按鈕onclick多點觸控
- 編輯
不,不!我不需要檢查是否第一個按鈕被點擊或沒有。當第一個或第二個按鈕處於ACTION_DOWN狀態時,如果按第一個按鈕,我不能按第二個按鈕,但我有多點觸控,我需要再聽另一個onClick事件。
我有2個按鈕,我需要從第二個按鈕時讀取onClick事件當第一個按下時現在和v.v.就像在鍵盤中一樣。怎麼做?Android按鈕onclick多點觸控
不,不!我不需要檢查是否第一個按鈕被點擊或沒有。當第一個或第二個按鈕處於ACTION_DOWN狀態時,如果按第一個按鈕,我不能按第二個按鈕,但我有多點觸控,我需要再聽另一個onClick事件。
你可以試試onTouchListeners
。在第一個按鈕中,修改向下和向上事件的布爾值,在第二個按鈕中,只在布爾值爲true時執行操作。
如果按鈕是切換按鈕,我覺得是那麼的情況:
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
乾杯
可能是你可以嘗試下面的代碼:
在類中聲明一個布爾變量。
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
}
}
});
請閱讀我的編輯 – Leo 2013-03-04 14:59:05
如果您想識別兩個觸摸,那麼可能需要實現ontouchlistener進行佈局,並檢查motionEvent對象的座標是否在按鈕邊界內,如果是,則處理該事件。 – 2013-03-05 05:49:22
有一個在Android的16/ApiDemos項目的示例代碼名爲「
private boolean button1IsPressed = false;
下面的按鈕1碼
寫視圖 - >將視圖分割「(SplitTouchView.java)。在該示例中,封閉LinearLayout
具有允許同時滾動兩個列表視圖的屬性android:splitMotionEvents="true"
。
根據Android 3.0 API Overview此屬性出現在這個版本的API:
以前只有單一視圖可以在同一時間接受觸摸事件。 Android 3.0增加了對視圖甚至窗口中的分離觸摸事件的支持,因此不同的視圖可以接受同時發生的觸摸事件。
那些切換按鈕? – g00dy 2013-03-04 08:32:51
類似於ctrl + C鍵盤快捷鍵? – vokilam 2013-03-04 08:50:53
目的是什麼?你的問題似乎並不完整。 – 2013-03-04 09:11:40