I have an onClick event in my android app that triggers the following code but it keeps crashing my app. I put it in a thread only because i read that that's supposed to prevent crashing. Also ctx refers to the Activity's context (it's a variable I created in the activity set equal to this. I've read and tried several things. Any help would be awesome. Thanks!
Thread toastThread = new Thread() {
public void run() {
Toast alertFailure = Toast.makeText(ctx, "Login Failed", Toast.LENGTH_LONG);
alertFailure.show();
}
};
toastThread.start();
You need to use runOnUiThread
Something like
runOnUiThread(new Runnable() {
public void run()
{
Toast.makeText(ctx, toast, Toast.LENGTH_SHORT).show();
}
});
Toast
is a UI
element so it needs to run on the UI Thread
, not a background Thread
.
However, if this is all you are using it for then you don't need a separate Thread
just to show a Toast
. If you can explain the context of how you are using it then maybe we can help with a better way. Also, if you are inside of your Activity
then you don't need a variable for Context
. You can use ActivityName.this
instead to access the Activity Context
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With