我试图在android studio中制作警报对话框,但它给了我一个奇怪的错误
AlertDialog.Builder a_builder =新的AlertDialog()。Builder(this);
在AlertDialog()
方法上
而且我不知道原因
java代码
package com.example.amr.alertdialog;
import android.content.DialogInterface;
import android.net.Uri;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity
{
private static Button btn_alert;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
onButtonClickListener();
}
public void onButtonClickListener()
{
btn_alert=(Button)findViewById(R.id.button);
btn_alert.setOnClickListener(
new View.OnClickListener()
{
@Override
public void onClick(View v)
{
AlertDialog.Builder a_builder = new AlertDialog().Builder(this);
a_builder.setMessage("you click alert").setCancelable(false).
setPositiveButton("yes", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
finish();
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
dialog.cancel();
}
});
AlertDialog alert = a_builder.create();
alert.setTitle("LALALALALALALA");
alert.show();
}
}
);
}
}
答案 0 :(得分:0)
Builder是AlertDialog的子类,而不是成员变量。
您需要使用
new AlertDialog.Builder(this);
答案 1 :(得分:0)
The Wanderer的答案是正确的!您真正需要做的就是更改:
AlertDialog.Builder a_builder = new AlertDialog().Builder(this);
到
AlertDialog.Builder a_builder = new AlertDialog.Builder(this);
但是,您可能需要考虑提取创建并显示AlertDialog
的代码,并将其放入单独的方法中。这样,您可以重复使用代码,并且代码将更易于阅读和调试。
public void onButtonClickListener()
{
btn_alert=(Button)findViewById(R.id.button);
btn_alert.setOnClickListener(
new View.OnClickListener()
{
@Override
public void onClick(View v)
{
showAlertDialog("LALALALALALALA", "you click alert")
}
}
);
}
现在添加用于创建和显示AlertDialog
的代码:
private void showAlertDialog(String title, String message){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(title);
builder.setMessage(message);
builder.setCancelable(true);
builder.setPositiveButton(
"Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
builder.setNegativeButton(
"No",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}