Android Toast消息未显示,没有任何错误

时间:2017-02-07 17:49:17

标签: android android-toast

我想向我的应用程序添加一个Toast消息,但似乎存在一些冲突,或者我可能做错了。

出于测试目的,我已在多个活动中发布了以下代码。

Toast test = Toast.makeText(ShareEventActivity.this, "Link has been copied!",
                Toast.LENGTH_LONG);
        test.show();
        Toast.makeText(getApplicationContext(),"Application Context",Toast.LENGTH_LONG).show();
        Toast.makeText(getBaseContext(),"Base Context",Toast.LENGTH_LONG).show();
        Toast.makeText(this,"this",Toast.LENGTH_LONG).show();

这在我的应用程序的任何部分都不起作用。它没有显示错误消息或警告。

我似乎无法弄清楚发生了什么,并且没有在网上找到任何东西。 我唯一能想到的可能是第三方图书馆正在发生冲突。

compile 'com.google.firebase:firebase-database:10.0.1'
compile 'com.android.support:appcompat-v7:25.1.0'
compile 'com.android.support:design:25.1.0'
compile 'com.android.support:support-v4:25.1.0'
compile 'com.facebook.android:facebook-android-sdk:4.16.1'
compile 'com.google.firebase:firebase-core:10.0.1'
compile 'com.google.firebase:firebase-database:10.0.1'
compile 'com.google.firebase:firebase-auth:10.0.1'
compile 'com.android.support:gridlayout-v7:25.1.0'
compile 'com.github.ittianyu:BottomNavigationViewEx:1.1.1'
compile 'com.firebaseui:firebase-ui-database:1.0.1'
compile 'com.google.android.gms:play-services:10.0.1'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.android.support:multidex:1.0.1'
compile 'com.google.maps.android:android-maps-utils:0.4+'
compile 'jp.wasabeef:recyclerview-animators:2.2.5'
compile 'org.droidparts:droidparts:2.9.8'

使用的主题:

<style name="CustomTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <!--<item name="colorPrimary">@color/colorPrimary</item>-->
        <!--<item name="colorPrimaryDark">@color/colorPrimaryDark</item>-->
        <!--<item name="colorAccent">@color/colorAccent</item>-->
        <item name="android:actionBarStyle">@style/MyActionBar</item>

        <!-- Support library compatibility -->
        <item name="actionBarStyle">@style/MyActionBar</item>
    </style>

欢迎任何建议。

1 个答案:

答案 0 :(得分:0)

据我所知,您必须使用活动来获取吐司的背景。我使用片段作为Toa​​st的上下文时遇到了同样的问题。

我现在的方法是使用静态newInstance方法将对我的主要活动的弱引用传递给片段来创建我的片段。

然后在片段中的newInstance方法中设置弱引用的值:

public class MyFragment extends Fragment {

   private WeakReference<MainActivity> mWeakRefActivity;

public static MyFragment newInstance(MainActivity activity, ...) {
   mWeakRefActivity = new WeakReference<MainActivity>(activity);
   ... // pass any other args or a a bundle to fragment here
}

Toast.makeText(mWeakRefActivity.get().getApplicationContext(), ...);

然后在你的toast call中使用弱引用来获取上下文

您也不必创建一个使用Toast的对象 - 只需直接调用Toast.makeText而无需创建对象。代码越少越好。

但你所展示的应该是有用的 - 没有看到周围的代码就不可能再说了。