有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在对话框打开时显示toast?

这是我面临的一个极其简单的问题。基本上,我请求的是运行时权限,但我还希望在请求权限的同时显示祝酒词:

相关代码:

if ((ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED
                                    || ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)) {
                                ActivityCompat.requestPermissions(MainActivity.this, new String[]{


                                        Manifest.permission.RECORD_AUDIO,
                                        Manifest.permission.WRITE_EXTERNAL_STORAGE}, 4);

                                Toast.makeText(MainActivity.this, "You must enable BOTH", Toast.LENGTH_LONG).show();

问题是,权限对话框一出现,土司就会很快消失(可能不到0.5秒)

enter image description here

这是安卓上的一个bug吗?还是有一些我错过的工作


共 (4) 个答案

  1. # 1 楼答案

    尽量使上下文为

    Toast.makeText(getApplicationContext(),"YOUR TEXT",Toast.LENGTH_LONG).show();
    
  2. # 2 楼答案

    祝酒词不会永久显示。祝酒词的整个概念是,它会弹出然后消失。如果你想要更持久的东西,你必须自己去实现

  3. # 3 楼答案

    这是android中权限的默认对话框,因此没有解决方案。是的,但是如果你做了自定义对话框,那么你可以在你想要的地方显示它

  4. # 4 楼答案

    Toast消息显示时间短2秒或长3.5秒,不能更改

    如果您希望长时间显示toast消息,则需要连续显示

    for (int i=0; i < 5; i++){
        Toast.makeText(this, "Your toast message", Toast.LENGTH_SHORT).show();
    }
    

    它将显示您的祝酒词10秒钟

    希望有帮助:)