【发布时间】:2021-01-14 05:39:14
【问题描述】:
我有这个代码单独的类,它使 Snackbar 显示在我的应用程序中,但是在我当前的实现中,我得到了一个“java.lang.NullPointerException”。如何在我的主类中正确实现它?
这是我的小吃店课程:
public class SnackBarUtils
{
private static SnackBarUtils mInstance = null;
private Snackbar mSnackBar;
private SnackBarUtils()
{
}
public static SnackBarUtils getInstance()
{
if (mInstance == null)
{
mInstance = new SnackBarUtils();
}
return mInstance;
}
public void hideSnackBar()
{
if (mSnackBar != null)
{
mSnackBar.dismiss();
}
}
public void showProblemSnackBar(final Activity activity, final String message)
{
mSnackBar = Snackbar.make(activity.findViewById(android.R.id.content), message,
Snackbar.LENGTH_INDEFINITE);
// Changing action button text color
View sbView = mSnackBar.getView();
TextView textView = sbView.findViewById(com.google.android.material.R.id.snackbar_text);
mSnackBar.setAction("x", new View.OnClickListener()
{
@Override
public void onClick(View v)
{
//Call your action method here
mSnackBar.dismiss();
}
});
textView.setTextColor(Color.WHITE);
sbView.setBackgroundColor(Color.RED);
textView.setMaxLines(3);
mSnackBar.show();
}
}
这是我当前在主要活动中的实现,我已经像这样初始化了小吃栏类:
SnackBarUtils snackBarUtils;
然后这样称呼它:
snackBarUtils.showProblemSnackBar(MainActivity.this, mPlainTextResponse);
我做错了什么?或者这样做的正确方法是什么?
【问题讨论】:
标签: java android android-activity snackbar