我使用一个Alert类,在其中定义所有警报对话框以向用户显示状态消息。这是因为管理起来更舒服。
此类中定义的典型对话框是
public static void DataCleared(Context con) {
AlertDialog.Builder builder = new AlertDialog.Builder(con);
builder.setTitle(R.string.data_cleared_title);
builder.setIcon(android.R.drawable.ic_dialog_info);
DialogListner listner = new DialogListner();
builder.setMessage(R.string.data_cleared_text);
builder.setPositiveButton("ok", listner);
AlertDialog diag = builder.create();
diag.show();
}
此对话框有一个确定按钮,单击该按钮可关闭对话框。
我在简单调用的任何活动中显示这些对话框
Alerts.DataCleared(MyActivity.this)
现在,以同样的方式,我想创建一个带有两个按钮的对话框,一个取消按钮关闭对话框,一个市场按钮打开另一个 Google Play 应用程序的链接
我试过了
public static void TryThisApp(Context con) {
AlertDialog.Builder builder = new AlertDialog.Builder(con);
builder.setTitle(R.string.my_title);
builder.setIcon(android.R.drawable.ic_dialog_info);
builder.setMessage(R.string.my_text)
.setCancelable(false)
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent marketIntent = new Intent(
Intent.ACTION_VIEW,
Uri.parse("market://details?id=com.myapp.sample"
+ getPackageName()));
startActivity(marketIntent);
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog diag = builder.create();
diag.show();
}
但不起作用,出现各种编译错误“无法对非静态方法进行静态引用...”
getPackageName()
并由startActivity(marketIntent);
Eclipse 用红色下划线显示,并带有此消息
我该如何解决这个问题?如何创建带有打开链接和取消按钮的对话框?