我正在通过Andengine为Android开发一款游戏.我有MainActivity类和GameScene类.我在GameActivity中使用Toast消息.它正在发挥作用.
Toast.makeText(this, " Hello World", Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)
所以我想在GameScene类中使用Toast消息.但它不起作用.这是代码:
Toast.makeText(activity, " Hello World", Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)
我必须使用"活动"而不是"这个".但它不起作用
为什么?
编辑:
当我使用第二个时,会发生错误.LogCat:http: //s29.postimg.org/k8faj9mdj/Capture.png
我知道还有一些其他问题可以解决这个问题,然而,我的情况却出乎意料地不同(至少我是这么认为的).
我想我的代码是正确的,但我不知道为什么烤面包消息不显示.首先,我在片段中看不到吐司信息.然后我决定将它放在我的活动中,令人惊讶的是它也没有显示在这里.
这是我的Activity的代码,它已经从FragmentActivity扩展而来.
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Log.d(TAG, "***************************");
Log.d(TAG, "*** Application started ***");
Log.d(TAG, "***************************");
// assign layout to activity
setContentView(R.layout.activity_main);
mContext = MainActivity.this;
Toast.makeText(mContext, "Hello World", Toast.LENGTH_SHORT).show();
.
.
.
}
Run Code Online (Sandbox Code Playgroud)
应用程序工作正常,没有错误,只显示此f.toast消息!我甚至用getApplicationContext()替换了mContext,我得到了相同的结果,toast没有显示.
任何建议将不胜感激.谢谢
===============
更新:当我打开Toast类时,会有一些红线.请看下面的图片

我在各种手机上测试了我的应用程序和原始内容,如进度对话框和Toast消息看起来很正常,但是当我开始使用Android 5.0测试手机时,进度对话框/ Toast的边缘被切断了.


我究竟做错了什么?在操作系统低于棒棒糖的每部手机上,它运行正常.
我的风格,按要求:
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<!-- <item name="android:actionBarStyle">@style/AppTheme.ActionBarStyle</item>
</style>
<style name="AppTheme.ActionBarStyle" parent="android:Theme.Holo.Light.NoActionBar">
<item name="android:background">#1d2128</item>
<!--<item name="android:titleTextStyle">@style/AppTheme.ActionBar.TitleTextStyle</item>-->
<item name="android:icon">@drawable/top_bar_logo</item>
<!--<item name="android:indeterminateProgressStyle">@style/IndeterminateProgress</item>-->
</style>
<style name="AppTheme.MainActivity" parent="android:Theme.Holo.Light.NoActionBar">
<item name="android:clipToPadding">false</item>
</style>
Run Code Online (Sandbox Code Playgroud) java android progressdialog android-toast android-5.0-lollipop
并发Toast总是连续出现的,但是在运行SDK 27(8.1.1)的新设备上,它们并发出现,并且重叠。
我相信它在Android SDK 27中已更改,但是我找不到任何文档来支持它。任何人都可以确认或否认吗?我需要知道是否应该实施特定于版本的解决方法。
这是最主要的:
<activity android:name=".MainActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Main2Activity"
android:screenOrientation="portrait">
</activity>
Run Code Online (Sandbox Code Playgroud)
我们有两个活动,这两个活动的方向都限于清单中指定的“ 纵向 ”。MainActivity是发射Main2Activity,onBackPressed()的Main2Activity被覆盖并显示一个Toast代码如下:
@Override
public void onBackPressed() {
Toast.makeText(Main2Activity.this,"This is from Second",Toast.LENGTH_SHORT).show();
super.onBackPressed();
}
Run Code Online (Sandbox Code Playgroud)
问题陈述:
1.将手机保持在横向状态
2.启动应用程序
3. MainActivity以纵向创建(直到此处都没有问题)
4. Main2Activity从中启动MainActivity,有一个按钮可以进行操作
5. Main2Activity以纵向打开(直到此处都没有问题) )
6.按下硬件后退按钮, 使它Main2Activity消失。7
. 用Toast MainActivity 在横向显示,然后自动变为纵向。
8.在所有这些步骤中,设备处于正常状态
。9.尝试将上下文更改为应用程序上下文,但没有运气
。10.移除了Toast,一切正常
为什么在第7点出现这种行为?
在尝试发布我的应用以进行生产时,预发布报告通知我 Pixel 2 Android P Preview 设备上出现错误。该错误与我拥有的自定义 Toast 消息有关,其中说“已将视图添加到窗口管理器”:
java.lang.IllegalStateException: View android.support.constraint.ConstraintLayout{efbeb21 V.E...... ......ID 0,0-788,1124 #7f0900db app:id/toast_correct_container} has already been added to the window manager.
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:328)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:93)
at android.widget.Toast$TN.handleShow(Toast.java:499)
at android.widget.Toast$TN$1.handleMessage(Toast.java:403)
at android.os.Handler.dispatchMessage(Handler.java:106)
at androidx.test.espresso.base.Interrogator.a(Interrogator.java:19)
at androidx.test.espresso.base.UiControllerImpl.a(UiControllerImpl.java:142)
at androidx.test.espresso.base.UiControllerImpl.a(UiControllerImpl.java:134)
at androidx.test.espresso.base.UiControllerImpl.a(UiControllerImpl.java:34)
at androidx.test.espresso.action.MotionEvents.a(MotionEvents.java:74)
at androidx.test.espresso.action.MotionEvents.a(MotionEvents.java:52)
at androidx.test.espresso.action.Tap.c(Tap.java:9)
at androidx.test.espresso.action.Tap.a(Tap.java:19)
at androidx.test.espresso.action.Tap$1.b(Tap.java:2)
at androidx.test.espresso.action.GeneralClickAction.perform(GeneralClickAction.java:22)
at androidx.test.espresso.ViewInteraction$SingleExecutionViewAction.perform(ViewInteraction.java:9)
at androidx.test.espresso.ViewInteraction.a(ViewInteraction.java:78)
at androidx.test.espresso.ViewInteraction.a(ViewInteraction.java:94)
at androidx.test.espresso.ViewInteraction$1.call(ViewInteraction.java:3)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) …Run Code Online (Sandbox Code Playgroud) 当从 AIDL 服务回调中调用 show toast 消息时,toast 会闪烁。我runOnUiThread()在 AIDL 回调中尝试使用、处理程序等...但仍然没有解决。
有人遇到过类似的问题吗?
如何在 WorkManager 中显示 toast do work()?
当我尝试时,它会抛出
Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
Run Code Online (Sandbox Code Playgroud) 假设我有这个代码 onCreate()
for (int i = 0; i < 20; i++) {
Toast.makeText(MainActivity.this, "Toast "+i, Toast.LENGTH_SHORT).show();
}
Run Code Online (Sandbox Code Playgroud)
当我启动应用程序时,Toasts 开始弹出。
现在,当我按下后退按钮时(假设在 Toast 5 之后)。在onDestroy()被调用时,应用程序被关闭。
但是我仍然可以看到 Toast 弹出,直到它达到 20 或者我从内存中清除应用程序。
题:
为什么我的代码用完了应用程序?
我已经给出了我的活动的上下文,那么它不应该在活动被破坏后立即停止吗?
不是context这里的问题吗?
如果您链接任何文档,将会很有帮助。
我在显示Toast消息时遇到运行时异常
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
Run Code Online (Sandbox Code Playgroud)
当用户从应用程序的任何位置收到推送通知时,我想将消息正文显示为Toast消息.
有帮助吗?
public class MyAppFirebaseMessagingService extends FirebaseMessagingService {
private static final String TAG = "FCM Service";
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
if (remoteMessage.getNotification() != null) {
if (AppConfig.SYSTEM_WIDE_DEBUG) {
Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());
}
sendNotification(remoteMessage.getNotification().getBody());
}
}
private void sendNotification(String messageBody) {
Toast.makeText(getApplicationContext(),messageBody,Toast.LENGTH_LONG).show();
Intent intent = new Intent(this, HomeActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent, PendingIntent.FLAG_ONE_SHOT);
Uri …Run Code Online (Sandbox Code Playgroud) android push-notification firebase android-toast firebase-cloud-messaging