gpt4 book ai didi

java - 在不同监听器之间切换

转载 作者:行者123 更新时间:2023-12-02 10:52:17 24 4
gpt4 key购买 nike

我正在使用手势监听器来监视用户的操作,但是当应用程序弹出对话框时,我不知道如何将手势监听器切换到对话框事件并处理事件按钮(确定和取消),可以有人给我建议吗?

伪代码喜欢这样

 public class MainActivity extends FragmentActivity
implements ConnectionEventListener{
......
// when connection established,
// pop a diaglog (android native diaglog with listview and its adapter) to ask user to select ok or cancel button
@Override
public void onUpdateAlert(final int event, final String message){
}

// gesture listener
// if a dialog pops up, the pose can be used to select OK or cancel
@Override
public void onDetected(Hand pose){
}
}

我遇到的问题不是按钮监听器。实际上,我有两个监听器同时工作,一个用于事件监视器,另一个用于姿势监视器。当事件到来时,该事件会弹出一个对话框来选择“确定”或“取消”。与此同时,姿势监听器仍然有效。我想知道当这种情况发生时,如何在对话框弹出时使用姿势监听器选择“确定”或“取消”?

最佳答案

我认为我们需要这样的东西:

public static void showDialog(SomeActivity someActivity, final SomeCallback callBack {
final Dialog dialog = new Dialog(someActivity);

dialog.setContentView(R.layout.dialog_with_buttons);

// OK button ...
Button dialogButtonOk = dialog.findViewById(R.id.btn_ok);
dialogButtonOk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
callBack.execute(true);
dialog.dismiss();
}
});

// Cancel button ...
Button buttonCancel = dialog.findViewById(R.id.btn_cancel);
buttonCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
callBack.execute(false);
dialog.dismiss();
}
});

dialog.show();
}

我们可以像这样从 SomeActivity 调用 showDialog:

showDialog(this, new SomeCallback () {
@Override
public void execute(boolean status) {
if (status) {
...
} else {
...
}
}
});

以及回调接口(interface):

public interface SomeCallback {
void execute(boolean status);
}

祝你好运

<小时/>

伪代码可以是这样的:

boolean status = false;

@Override
public void onUpdateAlert(final int event, final String message){
status = true;
// pop up the dialog
}

@Override
public void onDetected(Hand pose){
if(status) {
status = false;
...
}
}

关于java - 在不同监听器之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52070433/

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