在Unity3D中调用安卓AlertDialog

来源:互联网 发布:工商局网络监管职责 编辑:程序博客网 时间:2024/05/21 10:43

示例代码如下

package com.sample.sampletest;import android.app.AlertDialog;import android.content.DialogInterface;import android.os.Bundle;import android.os.Handler;import android.os.Message;import com.unity3d.player.UnityPlayerActivity;public class MainActivity extends UnityPlayerActivity {private static Handler handler;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        handler=new Handler()        {        @Override        public void handleMessage(Message msg)        {        super.handleMessage(msg);        switch (msg.what)        {        case 1: indirectShowDialog(); break;        default:break;        }        }        };    }        public void showExitConfirm()    {    Message tempMsg=new Message();    tempMsg.what=1;    handler.sendMessage(tempMsg);    }        void indirectShowDialog()    {    AlertDialog dialog=new AlertDialog.Builder(this)    .setTitle("提示")    .setMessage("确定要退出吗")    .setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {System.exit(0);}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();}})    .create();    dialog.show();    }}


不能直接调用,必须通过一个handler间接调用,我没在官网上找到原因,我在一个台湾程序猿的博客上看到说是由于unity3d生成的安卓主activity由于安全性的原因屏蔽掉了AlertDialog,没关系,我们间接调用就可以了

0 0
原创粉丝点击