2017-02-07 3 views
0

Я хочу добавить тост-сообщение в свое приложение, но похоже, что есть какой-то конфликт, или я могу что-то делать неправильно.Android 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

Пожалуйста, отправьте код, где вы его используете ... –

+2

Вы отключили уведомления для этого приложения? Тосты считаются уведомлениями. – maxoumime

+1

maxoumime, спасибо, что это было так, поэтому в основном тосты не должны использоваться для отправки сообщения. – SitRock

ответ

0

Насколько я знаю, вы должны использовать действие, чтобы получить контекст для вашего тоста. У меня была такая же проблема, как и при использовании фрагмента в качестве контекста для моего Тоста.

Мой подход заключается в том, чтобы передать слабую ссылку на мою основную деятельность во фрагмент, используя статический метод 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.makeText напрямую, не создавая объект. Меньше кода лучше.

Но то, что вы показываете, должно работать - не видя окружающего кода, невозможно сказать больше.

Смежные вопросы