我开始使用AndroidStudio,我想在我的外部主要活动类中使用toast:
在外部课程中我有这个方法:
private void call_toast(){
Toast.makeText(MainActivity, "Task Finalize!", Toast.LENGTH_SHORT).show();
}
这是我的想法,但在“MainActivity”中给我错误。如何通过外部课程在我的实际活动中展示吐司?提前致谢,对不起我的英语!
PD1:如果您需要更多信息或代码建议我!
答案 0 :(得分:2)
你有几个选择。
将上下文传递给call_toast
,即:
public void call_toast(Context context){}
并在活动中致电:
call_toast(SomeActivity.this);
getApplicationContext()
您需要参加活动的地方。希望这有助于您入门。
答案 1 :(得分:2)
显示toast需要在主UI线程中完成。以下代码是一个静态方法的示例,可以从任何线程执行(当您的应用程序甚至不在前台时,包括后台服务)。
public class ServiceUtils {
//-------------------------------------------------------------------------
// Constructor
// All methods in this class are static, no need for a public constructor
private ServiceUtils() {}
private static final Handler s_toastHandler = new Handler(Looper.getMainLooper());
public static void notifyUI(final Context context, final String toastMsg) {
s_toastHandler.post(new Runnable() {
public void run() {
try {
Toast.makeText(context,
toastMsg,
Toast.LENGTH_SHORT).show();
}
catch(Exception ex) {
Log.e(ServiceUtils.class.getSimpleName(), ex.getMessage());
}
}
});
}
}
现在你可以随时随地打电话了:
ServiceUtils.notifyUI(getApplicationContext(), "some toast message")
答案 2 :(得分:1)
尝试
Toast.makeText(getApplicationContext(), "Task Finalize!", Toast.LENGTH_SHORT).show();