我的Android应用需要一个特殊按钮,其正常状态为MouseDown
。触发Click event
时会触发MouseUp event
。
因此,此按钮实际上与普通按钮相反
它不需要DoubleClick event
。在网上尝试搜索;找不到任何东西。
答案 0 :(得分:1)
以下是我实施“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);
}
}