我想要兩個單獨的事件用於長按一下,然後長點擊。我如何在Android中執行此操作?長時間點擊並長時間點擊Android的事件
我已經試過如下
public class FfwRewButton extends ImageButton {
public interface ButtonListener {
void OnLongClickDown(View v);
void OnLongClickUp(View v);
}
private ButtonListener mListener;
private boolean mLongClicked = false;
public FfwRewButton(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
setFocusable(true);
setLongClickable(true);
}
public FfwRewButton(Context context) {
this(context, null);
}
public FfwRewButton(Context context, AttributeSet attrs) {
this(context, attrs, android.R.attr.imageButtonStyle);
}
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
Log.d("my listener", "long press");
mLongClicked = true;
mListener.OnLongClickDown(this);
return super.onKeyLongPress(keyCode, event);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
Log.d("my listener", "key down");
mLongClicked = false;
if (true) {
super.onKeyDown(keyCode, event);
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
Log.d("my listener", "key up");
if (mLongClicked)
mListener.OnLongClickUp(this);
return super.onKeyUp(keyCode, event);
}
public void setFfwRewButtonListener(ButtonListener listener) {
mListener = listener;
}
}
,並在活動中我把它叫做這樣
private FfwRewButton.ButtonListener mListener = new FfwRewButton.ButtonListener() {
@Override
public void OnLongClickUp(View v) {
Log.d(TAG, "longClickup");
}
@Override
public void OnLongClickDown(View v) {
Log.d(TAG, "longClickdown");
}
};
但仍然不是在logcat的 獲得任何日誌消息的任何人都可以幫助我;我錯在哪裏?
by onLongClickUp你是指當用戶在longClicking後擡起手指時? – FoamyGuy 2013-02-14 14:33:52
是的,當用戶擡起手指 – 2013-02-14 14:36:19
使用觸摸事件而不是按鍵事件 – Rajesh 2013-02-14 14:37:34