如何在吐司中设置重力,我可以更改警报对话框的位置吗?

问题描述

我想在布局的中心设置吐司的重力,但是当我添加重力并运行我的应用程序时,我的应用程序重新启动然后崩溃。我已经通过拿物体和不带物体两种方式尝试了吐司 这是我的代码错误也附上

@Override
public void onBackpressed() {
    new AlertDialog.Builder(MainActivity.this)
            .setTitle("Exit")
            .setIcon(R.drawable.ic_baseline_warning_24)
            .setMessage("Sure? Your Want to Exit.")
            .setPositiveButton("Yes",new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog,int which) {
                    finishAffinity();
                }
            }).setNegativeButton("No",new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog,int which) {
            dialog.dismiss();
        }
    }).setNeutralButton("Other",int which) {
            Toast toast = Toast.makeText(MainActivity.this,"Click yes for exit.",Toast.LENGTH_SHORT)
                    .setGravity(Gravity.CENTER,0);
                toast.show();

        }
    }).show();

错误是从运行选项卡复制的

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.androiddevelopment,PID: 3210
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Toast.setGravity(int,int,int)' on a null object reference
    at com.example.androiddevelopment.MainActivity$3.onClick(MainActivity.java:52)
    at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:177)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7356)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

我也试过了,但问题没有解决

@Override
public void onBackpressed() {
    new AlertDialog.Builder(MainActivity.this)
            .setTitle("Exit")
            .setIcon(R.drawable.ic_baseline_warning_24)
            .setMessage("Are you sure you want to exit")
            .setPositiveButton("yes",int which) {
                    finishAffinity();

                }
            }).setNeutralButton("Help","This is an \"Android Studio\" learning app",Toast.LENGTH_SHORT);
            toast.setGravity(Gravity.CENTER,0);
            toast.show();


        }
    }).setNegativeButton("No",int which) {
            dialog.dismiss();

        }
    }).show();
}

解决方法

使用:

public void onClick(DialogInterface dialog,int which) {
     Toast toast = Toast.makeText(MainActivityJava.this,"Click yes for exit.",Toast.LENGTH_SHORT);
     toast.setGravity(Gravity.CENTER,0);
     toast.show();     
}

enter image description here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...