gpt4 book ai didi

android - 对话框中的 onTouchEvent

转载 作者:行者123 更新时间:2023-11-29 14:55:23 29 4
gpt4 key购买 nike

我在 Android Dialog 中实现了按钮的 onLongClickListener,它使用计时器自动减少数字。这是代码

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;
}
});

当我在 Activity 中而不是对话框中时,我可以在用户触摸屏幕时通过 onTouchEvent 停止减少

@Override 
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
myIncreaseTimer.cancel();
myIncreaseTimer.purge();
myIncreaseTimer = new Timer();
}
return true;
}

但是,我无法在对话框中执行此操作。更甚者,对话框没有onTouchEvent。

有谁知道我如何在 Dialog 中实现 onTouchEvent 或者我应该在什么地方停止 Dialog 中的增加计时器?

最佳答案

你不能在 Dialog 上处理 onTouch,所以

创建一个 Activity,在其上实现 onTouchListener,并在 list 文件中

<activity android:theme="@android:style/Theme.Dialog">

所以,现在您的 Activity 看起来像一个 DialogBox,

关于android - 对话框中的 onTouchEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8048797/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com