Snack bar is not displayed

I use basic activity for all other activity.

public class BaseActivity extends AppCompatActivity { public static CoordinatorLayout coordinatorLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_base); coordinatorLayout = (CoordinatorLayout) findViewById(R.id .coordinatorLayout1); } } 

activity_base.xml

 <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/coordinatorLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:context="com.example.Activity.BaseActivity"></android.support.design.widget.CoordinatorLayout> 

Downloads are not displayed when trying to access from a class without activity.

  Snackbar snackbar = Snackbar .make(BaseActivity.coordinatorLayout, "Helooo....", Snackbar.LENGTH_LONG); snackbar.show(); 
+5
source share
2 answers

Make the public method in the Util class and do not create the cordinatorLayout as public static . Save the weakReference your Activity's instance and through it you can show the SnackBar . The method below.

 public void showSnackBar(Activity activity, String message){ View rootView = activity.getWindow().getDecorView().findViewById(android.R.id.content); Snackbar.make(rootView, message, duration).show(); } 
+13
source
 private static final String message = "No Internet Connection"; public static void message(Activity activity) { View rootView = activity.getWindow().getDecorView().findViewById(android.R.id.content); Snackbar.make(rootView, message, Snackbar.LENGTH_LONG).show(); } 
+1
source

Source: https://habr.com/ru/post/1239282/


All Articles