I want two separate events for a long press of the Down and Yes buttons. How can I do this in Android?
What I tried looks like this
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; } }
and in the activity that I called so
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"); } };
But I still don't get any log messages in logcat Can someone help me; where am i wrong
android android-button
Charan pai
source share