没有明显原因的简单应用崩溃

时间:2019-08-08 18:34:03

标签: android

我正在开发一个简单的android应用,该应用带有一个带有按钮的小部件,当按下该按钮时,它只会显示一个带有一些文本的AlertDialog。在IDE中没有显示我的代码的错误。当我单击小部件按钮时,会弹出一个菜单,显示“一个UI主页不断停止”,然后为我提供将反馈发送到android并关闭该应用的选项。我完全不知道这里发生了什么,我是创建Android应用程序的新手。

窗口小部件XML文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#09C"
    android:padding="@dimen/widget_margin">

    <Button
        android:id="@+id/getButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="AlertUser"
        android:text="@string/button_text" />
</RelativeLayout>

MainActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

public void AlertUser(View view) {
    new AlertDialog.Builder(getApplicationContext())
            .setTitle("Keycode")
            .setMessage("Test")


            // A null listener allows the button to dismiss the dialog and take no further action.
            .setNegativeButton(android.R.string.no, null)
            .setIcon(android.R.drawable.ic_dialog_alert)
            .show();
}

所有其他文件均保留为默认文件。任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:0)

尝试一下:

Button button;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
  button = findViewById(R.id.getButton);
  button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view){
        new AlertDialog.Builder(getApplicationContext())
        .setTitle("Keycode")
        .setMessage("Test")


        // A null listener allows the button to dismiss the dialog and take no further action.
        .setNegativeButton(android.R.string.no, null)
        .setIcon(android.R.drawable.ic_dialog_alert)
        .show();
        }
      }
}

然后从xml中的按钮中删除onclick事件

编辑:很抱歉,没有提供完整的代码,Button = button创建了将在我的应用程序中使用的变量,因此当我使用button = findViewById时,我指的是xml中的id要做一个onclick事件,这在主要班上,我很抱歉我的英语说得不太好。

答案 1 :(得分:0)

以这种方式创建对话框:

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(Activity context);
    alertDialogBuilder
            .setTitle("Keycode")
            .setMessage("Test")
            .setIcon(android.R.drawable.ic_dialog_alert)
            .setPositiveButton("Yes",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog,
                                            int id) {
                            //code here
                        }
                    });
    alertDialogBuilder.setNegativeButton("No",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    dialog.cancel();
                }
            });
    AlertDialog alert = alertDialogBuilder.create();
    alert.show();