我正在编写一个显示按钮列表的程序,每个按钮代表某个城市的不同景点。单击该按钮后,对话框应该向用户显示两个选项,“更多信息”和“映射它”。点击“更多信息”按钮将用户引导到景点的网站,“地图”按钮将显示一个带有景点谷歌地图的页面。
我的问题是,每当点击吸引力的按钮时,我需要生成一个带有两个按钮的AlertDialogBox,这两个按钮都有自己的OnClickListeners。当我尝试在AlertDialogBox上创建两个按钮时,会出现问题。我收到一个错误,无法创建按钮。
在另一个程序中,我尝试创建一个AlertDialogBox,它工作正常,所以我不确定是什么问题。我的代码在
之下button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
new AlertDialog.Builder(getApplicationContext())
.setTitle(name)
.setIcon(R.drawable.ic_launcher)
.setMessage("Get More Information")
.setNegativeButton(1, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
)
intent = new Intent();
}
})
.create()
.show();
}
});
答案 0 :(得分:0)
方法setNegativeButton(int textId, DialogInterface.OnClickListener listener)
将文本 资源 ID作为参数。例如:R.string.my_string
或R.string.app_name
或其他。找不到资源,因此无法创建AlertDialog。
你可能想改变你的想法
setNegativeButton(int textId, DialogInterface.OnClickListener listener)
致电
您也可以使用setNegativeButton(CharSequence text, DialogInterface.OnClickListener listener)
将CharSequence(字符串是CharSequence,您可以传递一个)作为参数(文本)显示在按钮上,如:"More Info"
或{{1} }。
此外,您可以使用"Map It"
代替getApplicationContext()
。
答案 1 :(得分:0)
试试这个:
Button btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(YourActivityName.this);
.setTitle(name)
.setIcon(R.drawable.ic_launcher)
.setMessage("Get More Information")
.setPositiveButton("Ok",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//do operations
}
})
.setNegativeButton("Close",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
答案 2 :(得分:0)
您没有正确实施.setNegativeButton()
方法,理想情况下它应该有2个参数,
按钮文本:这可以是String
(即“Hello”)或String
resource
(即R.string.hello)在strings.xml
文件中定义的
res/values
文件夹。
其次,必须是DialogInterface.onClickListener()
才能听
单击对话框按钮,在其onClick中,您可以执行此操作
任务。
理想的AlertDialog
代码可能如下所示:
AlertDialog.Builder builder = new AlertDialog.Builder()
builder.setTitle("Hello World")
builder.setMessage("India is incredible.")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// Do something on Positive button click
.
.
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// Do something on Negative button click
.
.
}
})
.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
// Do Something on Back key press
.
.
}
return false;
}
}).create().show();
有关AlertDialog.Builder
方法的详细信息,请参阅此处的参考文档http://developer.android.com/reference/android/app/AlertDialog.Builder.html