san*_*one 1 android timer ontouchlistener touch-event android-dialog
我已经onLongClickListener
在 Android 中实现了Dialog
使用计时器自动减少数字的按钮。这是代码
myIncreaseTimer = new Timer();
final Runnable runnable_decrease = new Runnable() {
public void run() {
int txt = Integer.parseInt(length.getText().toString());
txt -= 1;
length.setText(String.valueOf(txt));
if (txt == 0) {
myIncreaseTimer.cancel();
myIncreaseTimer.purge();
myIncreaseTimer = new Timer();
}
}
};
btnMinus.setOnLongClickListener(new View.OnLongClickListener() {
public boolean onLongClick(View v) {
myIncreaseTimer.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(runnable_decrease);
}
}, 0, 300);
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
当我在活动中而不是对话框中时,我可以通过onTouchEvent
用户触摸屏幕来停止减少
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
myIncreaseTimer.cancel();
myIncreaseTimer.purge();
myIncreaseTimer = new Timer();
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
但是,我无法在对话框中执行此操作。更重要的是,该对话框没有 onTouchEvent。
有谁知道我怎样才能既实现onTouchEvent
的Dialog
或我应该在哪里停在了增加定时器Dialog
?
你不能在 Dialog 上处理 onTouch 所以
创建一个活动,在其上实现 onTouchListener,并在清单文件中
<activity android:theme="@android:style/Theme.Dialog">
Run Code Online (Sandbox Code Playgroud)
所以,现在你的活动看起来像一个对话框,
归档时间: |
|
查看次数: |
4442 次 |
最近记录: |