本机UI确认对话框LibGDX

时间:2013-06-01 21:55:03

标签: java android libgdx

我正在寻找一种方法来获得一个yes / no对话框来显示android。

我正在寻找与此类似的功能:

Gdx.input.getTextInput(new TextInputListener() {
            @Override
            public void input (String text) {
            }

            @Override
            public void canceled () {

            }
        }, "Question", "");

除了获取文本输入外,我希望它只是提示用户输入是或否。

我已经调查了this,但我无法让它工作,因为它可能已经过时了。如果有人能想到解决这个问题,那就太好了。非常感谢!

2 个答案:

答案 0 :(得分:3)

尝试将您的活动更改为如下所示。其他一切(例如RequestHandler)应该是正确的。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    initialize(new ConfirmTest(this), false);
}

@Override
public void confirm(final ConfirmInterface confirmInterface) {
    runOnUiThread(new Runnable(){
   @Override
   public void run() {
    new AlertDialog.Builder(ConfirmTestAndroidActivity.this)                                     
            .setTitle("Confirm")
            .setMessage("Are you sure?")                                            
            .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    confirmInterface.yes();
                    dialog.cancel();
                }
            })
            .setNegativeButton("No", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();
                }
            })
           .create().show();        
   }        
});
}

要使用自定义配置,您可以使用:

Game myGame = new Game(); // your game class which implements ApplicationListener

AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
cfg.useGL20 = true;
cfg.useCompass = false;
cfg.useAccelerometer = false;
cfg.useWakelock = true;
cfg.touchSleepTime = 16;

initialize(myGame, cfg);

请记住,使用WakeLock功能需要声明AndroidManifest.xml中的权限,否则将抛出SecurityException。

<uses-permission android:name="android.permission.WAKE_LOCK" />

答案 1 :(得分:0)

您可以使用gdx-dialogs库。在此处使用说明:https://github.com/TomGrill/gdx-dialogs

您可以构建这些原生对话框:

  • GDXProgressDialog:用于加载对话框
  • GDXTextPrompt:用于文本输入
  • GDXButtonDialog:用于多选项弹出

它适用于iOS,Android和桌面