0

I get the following error:

08-27 17:49:17.995: E/AndroidRuntime(10085): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
08-27 17:49:17.995: E/AndroidRuntime(10085):    at android.os.Handler.<init>(Handler.java:121)
08-27 17:49:17.995: E/AndroidRuntime(10085):    at android.widget.Toast$TN.<init>(Toast.java:361)
08-27 17:49:17.995: E/AndroidRuntime(10085):    at android.widget.Toast.<init>(Toast.java:97)
08-27 17:49:17.995: E/AndroidRuntime(10085):    at android.widget.Toast.makeText(Toast.java:254)

when running the first line of:

public static void alertUser(String str) {
    Toast toast = Toast.makeText(mInstance.getApplicationContext(), str,
            Toast.LENGTH_LONG);
    toast.show();

}

how can i fix this?

Elad Benda
  • 35,076
  • 87
  • 265
  • 471

1 Answers1

1

Something like this should work:

public static void alertUser(String str) {

runOnUiThread(setErrorMessage); 

}


private Runnable setErrorMessage = new Runnable() {
    @Override
    public void run() {

        Toast toast = Toast.makeText(mInstance.getApplicationContext(), str,
        Toast.LENGTH_LONG);
toast.show();
    }
};
Johan Nordli
  • 1,220
  • 3
  • 13
  • 26
  • but on this answer, they have suggested something else : http://stackoverflow.com/questions/18467470/threading-cant-create-handler-inside-thread-that-has-not-called-looper-prepar – Elad Benda Aug 28 '13 at 07:10