0
我的Android應用程序需要一個特殊的按鈕,其正常狀態爲MouseDown
。當MouseUp event
被解僱時,Click event
被解僱。如何用「buttondown」作爲正常狀態來實現「反向點擊」事件?
所以這個按鈕實際上是正常的按鈕
它並不需要一個DoubleClick event
的相反。試圖在網絡上搜索;找不到任何東西。
我的Android應用程序需要一個特殊的按鈕,其正常狀態爲MouseDown
。當MouseUp event
被解僱時,Click event
被解僱。如何用「buttondown」作爲正常狀態來實現「反向點擊」事件?
所以這個按鈕實際上是正常的按鈕
它並不需要一個DoubleClick event
的相反。試圖在網絡上搜索;找不到任何東西。
這裏是我實施了「ReverseButton」:
import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.Button;
public class CustomButton extends Button {
private CustomButtonListener mListener;
private boolean mPressedState;
public CustomButton(Context context) {
super(context);
}
public CustomButton(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomButton(Context context, AttributeSet attrs, int defStyleAttr) {
this(context, attrs, defStyleAttr, 0);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public CustomButton(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
mPressedState = true;
break;
case MotionEvent.ACTION_UP:
if(mPressedState) {
mListener.onRelease(event);
}
mPressedState = false;
break;
}
return super.onTouchEvent(event);
}
public void setOnReleaseListener(CustomButtonListener listener) {
mListener = listener;
}
public interface CustomButtonListener{
void onRelease(MotionEvent event);
}
}
我想你需要的是一個切換按鈕http://developer.android.com/guide/topics/ui/controls/togglebutton.html –
切換按鈕不會。該按鈕需要保持按下,短按釋放按鈕應該觸發事件。 –
好吧,所以通過「短版」你的意思是「短暫的觸摸」,對吧?這看起來像你只是想扭轉按鈕的外觀,即。使其看起來在默認狀態下按下,按下時正常。我認爲你可以通過自定義選擇器來實現,如官方指南中所述http://developer.android.com/guide/topics/ui/controls/button.html#CustomBackground –