我正在开发一个简单的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();
}
所有其他文件均保留为默认文件。任何帮助表示赞赏!
答案 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();