Olá pessoal!
Segue abaixo minha classe para trabalhar com Dialogs no Android:package br.com.tdta.service.view;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Looper;
public class MessageDialog {
public static void showOkDialog(Activity context, String msg) {
Looper.prepare();
final Looper myLooper = Looper.myLooper();
final AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage(msg).setNeutralButton("OK", new OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
myLooper.quit();
arg0.dismiss();
}
});
builder.create().show();
Looper.loop();
}
public static void showOkDialog(Activity context, String msg, final OnClickListener listener) {
Looper.prepare();
final Looper myLooper = Looper.myLooper();
final AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage(msg).setNeutralButton("OK", new OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
listener.onClick(arg0, arg1);
myLooper.quit();
arg0.dismiss();
}
});
builder.create().show();
Looper.loop();
}
public static void showSimNaoDialog(Activity context, String msg, final OnClickListener listenerSim) {
Looper.prepare();
final Looper myLooper = Looper.myLooper();
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage(msg).setPositiveButton("Sim", new OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
listenerSim.onClick(arg0, arg1);
myLooper.quit();
arg0.dismiss();
}
}).setNegativeButton("Não", new OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
myLooper.quit();
arg0.dismiss();
}
});
builder.create().show();
Looper.loop();
}
}
FATAL EXCEPTION: Thread-8
java.lang.RuntimeException: Only one Looper may be created per thread
at android.os.Looper.prepare
at br.com.tdta.service.view.MessageDialog.showOkDialog
at br.com.tdta.service.view.AtualizaDados.atualizaDados
at br.com.tdta.service.view.AtualizaDados.access$000
at br.com.tdta.service.view.AtualizaDados$1.run
at java.lang.Thread.run
Se eu tirar o Looper.prepare(), cai em outra exception, dizendo que TEM que ter esse Looper.prepare(). Agora não sei mais o que fazer.