0

我想使用一个按钮(不是键),就像退格一样,所以当它按下时重复做一些事情。我找到了硬件键的正确代码,但正如我所提到的,我想要一个 BUTTON 来做这些事情。谢谢

4

2 回答 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。有关示例,请参见此链接:

Android onTouch 监听事件

一个 switch 语句就足够了,只需使用我上面所说的对其进行自定义以满足您的需求。--希望这会有所帮助,斯科特

于 2013-07-03T23:58:29.557 回答