Я использую класс 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)
Теперь таким же образом я хочу создать диалоговое окно с двумя кнопками: кнопкой Отмена, чтобы закрыть диалоговое окно, и кнопкой Market, чтобы открыть ссылку на другое приложение 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, с этим сообщением
Как я могу решить эту проблему? Как я могу создать диалог с открытой ссылкой и кнопкой отмены?