于Unity3D调用安卓AlertDialog

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:31   1599   0

例如,下面的示例代码演示

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() {


   @Override
   public void onClick(DialogInterface dialog, int which) {
    System.exit(0);
   }})
  .setNegativeButton("取消", new DialogInterface.OnClickListener() {
   
   @Override
   public void onClick(DialogInterface dialog, int which) {
    dialog.dismiss(); 
   }
  })
     .create();
     dialog.show();
    }
}


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

版权声明:本文博主原创文章,博客,未经同意不得转载。

转载于:https://www.cnblogs.com/zfyouxi/p/4820128.html

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP