我想使用一个按钮(不是键),就像退格一样,所以当它按下时重复做一些事情。我找到了硬件键的正确代码,但正如我所提到的,我想要一个 BUTTON 来做这些事情。谢谢
问问题
1220 次
2 回答
1
谢谢斯科特。最后我找到了答案并完成了工作。
public MyActivity extends Activity
{
private Handler mHandler = new Handler();
private Runnable mUpdateTask = new Runnable()
{
public void run()
{
Log.i("repeatBtn", "repeat click");
mHandler.postAtTime(this, SystemClock.uptimeMillis() + 100);
}
};
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button repeatButton = (Button) findViewById(R.id.repeatButton);
repeatButton.setOnTouchListener(new OnTouchListener()
{
public boolean onTouch(View view, MotionEvent motionevent)
{
int action = motionevent.getAction();
if (action == MotionEvent.ACTION_DOWN)
{
Log.i("repeatBtn", "MotionEvent.ACTION_DOWN");
mHandler.removeCallbacks(mUpdateTask);
mHandler.postAtTime(mUpdateTask, SystemClock.uptimeMillis() + 100);
}
else if (action == MotionEvent.ACTION_UP)
{
Log.i("repeatBtn", "MotionEvent.ACTION_UP");
mHandler.removeCallbacks(mUpdateTask);
}
return false;
}
});
}
}
于 2013-07-05T09:48:11.043 回答
1
您可以OnTouchListener
在 Button 实例上设置一个。然后,您可以覆盖onTouch
侦听器的方法以执行您想要的操作,直到 MotionEvent 传递给该onTouch
方法MotionEvent.getAction == MotionEvent.ACTION_UP
。有关示例,请参见此链接:
一个 switch 语句就足够了,只需使用我上面所说的对其进行自定义以满足您的需求。--希望这会有所帮助,斯科特
于 2013-07-03T23:58:29.557 回答