问题
I searched many places but could not find a complete working example of implementation of "runOnUiThread". I tried a lot , but getting lots of errors . I just want to display a toast from a thread.
回答1:
So here is the final full code. Thanks to all who have replied.
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MainActivity.this.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(MainActivity.this, "This is Toast!!!", Toast.LENGTH_SHORT).show();
}
});
}
}
And About the XML, its is the default XML file created. No change needed.
回答2:
YourActivityName.this.runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(YourActivityName.this, "This is Toast!!!", Toast.LENGTH_SHORT).show();
}
});
回答3:
To answer Nefariis question, I had the same problem, and needed to toast from a non-activity class, to solve it you can pass Context to the function your calling runOnUiThread
from.
For example:
public class FlashCardsUtil
{
public static void fillTableFromFile(SQLiteDatabase pSqLiteDatabase, final Context pContext, String pFileName)
{
...
runOnUiThread(new Runnable()
{
public void run()
{
Toast.makeText(pContext, "Success filling database", Toast.LENGTH_SHORT).show();
}
});
}
}
来源:https://stackoverflow.com/questions/11791157/can-i-have-an-example-of-displaying-a-toast-using-runonuithread