Я - новичок разработчик Android. Я хотел бы знать, существует ли там способ прислушаться к пользовательскому исключению в Android и отобразить его текст с помощью предупреждения.Спасибо.
Просто поймайте нужное исключение, затем создайте новый диалог AlertDialog, содержащий содержимое исключения.
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
public class HelloException extends Activity {
public class MyException extends Exception {
private static final long serialVersionUID = 467370249776948948L;
MyException(String message) {
super(message);
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public void onResume() {
super.onResume();
try {
doSomething();
} catch (MyException e) {
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
dialog.setTitle("MyException Occured");
dialog.setMessage(e.getMessage());
dialog.setNeutralButton("Cool", null);
dialog.create().show();
}
}
private void doSomething() throws MyException {
throw new MyException("Hello world.");
}
}
Просто для того, чтобы дать знать другим пользователям: Если у вас есть отдельное пользовательское исключение, которое вы хотите использовать везде (модели, контроллеры и т.д.), а также в ваших представлениях, распространяйте пользовательское исключение везде и добавляйте код Trevor's AlertDialog в метод, определенный в вашем исключении, передавая ему контекст:
package it.unibz.pomodroid.exceptions;
import android.app.AlertDialog;
import android.content.Context;
public class PomodroidException extends Exception{
/**
*
*/
private static final long serialVersionUID = 1L;
// Default constructor
// initializes custom exception variable to none
public PomodroidException() {
// call superclass constructor
super();
}
// Custom Exception Constructor
public PomodroidException(String message) {
// Call super class constructor
super(message);
}
public void alertUser(Context context){
AlertDialog.Builder dialog = new AlertDialog.Builder(context);
dialog.setTitle("WARNING");
dialog.setMessage(this.toString());
dialog.setNeutralButton("Ok", null);
dialog.create().show();
}
}
В моем фрагменте, методом является alertUser(Контекстный контекст). Чтобы отобразить Alert в действии, просто используйте:
try {
// ...
} catch (PomodroidException e) {
e.alertUser(this);
}
Очень легко перегрузить метод, чтобы настроить некоторые части AlertDialog, такие как его заголовок и текст кнопки.
Надеюсь, это кому-нибудь поможет.