Ragazzi...approfitto della vostra disponibilità per chiedervi un altro consiglio
Ho questo metodo, a cui passo una stringa da visualizzare come messaggio della dialog e l'istanza dell'activity che lo invoca.
public void avvisaErrore(String str, Activity activity) {
final Activity act = activity;
final Intent intent;
if(act!=null) intent = new Intent(act.getApplicationContext(),act.getClass()) ;
else intent = new Intent(getApplicationContext(),FirstActivity.class );
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(str)
.setCancelable(false)
.setPositiveButton("Riprova", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
act.finish();
startActivity(intent);
}
})
.setNegativeButton("Esci", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
act.finish();
}
});
AlertDialog alert = builder.create();
alert.show();
}
...ma quando viene invocato mi provoca questo errore:
E/AndroidRuntime( 378): FATAL EXCEPTION: Timer-0
E/AndroidRuntime( 378): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
E/AndroidRuntime( 378): at android.os.Handler.<init>(Handler.java:121)
E/AndroidRuntime( 378): at android.app.Dialog.<init>(Dialog.java:101)
E/AndroidRuntime( 378): at android.app.AlertDialog.<init>(AlertDialog.ja
va:63)
E/AndroidRuntime( 378): at android.app.AlertDialog.<init>(AlertDialog.ja
va:59)
E/AndroidRuntime( 378): at android.app.AlertDialog$Builder.create(AlertD
ialog.java:786)
E/AndroidRuntime( 378): at mio.package.FirstActivity.avvisaErrore(FirtsActivi ty.java
:226)
E/AndroidRuntime( 378): at mio.package.FirstActivity$1.run(FirstActivity.java :116)
E/AndroidRuntime( 378): at java.util.Timer$TimerImpl.run(Timer.java:289)
Come posso fare? Grazie in anticipo.