如何在相对布局中使用 Snackbar 而不是 Toasts?

How to use Snackbar in a relative layout instead of Toasts?

我正在尝试在相对布局中使用 Snackbar 而不是 Toasts 来显示错误(如果输入字段为空)。但是我无法添加小吃店来代替吐司。

下面是我的 Toasts 代码 -

if (abc_value.equals("") || def_value.equals("") || ghi_value.equals("")) {
    Toast.makeText(getApplicationContext(), "Please enter all fields", Toast.LENGTH_SHORT).show();
} else {
    Intent intent = new Intent(getApplicationContext(), next.class);

如果 3 个字段中的任何一个为空,它将显示字符串消息,否则它将导航到下一个 activity。

编辑 -

  1. 第一次尝试:

    Snackbar.make(getActivity().getWindow().getDecorView().getRootView(), "Test", Snackbar.LENGTH_LONG).show();
    

这不是因为它不接受根视图 - 我觉得这是最接近的。

  1. Snackbar.make(findViewById(Ids), "Test", Snackbar.LENGTH_LONG)
                            .setAction("Undo", mOnClickListener)
                            .setActionTextColor(Color.RED)
                            .show();
    

尝试使用 ID 但不接受。

  1. Snackbar snackbar = Snackbar
        .make(coordinatorLayout, "Welcome to AndroidHive", Snackbar.LENGTH_LONG);
    
    snackbar.show();
    

不能使用它,因为我没有使用 coordinatorLayout。

试试这个:

     if (abc_value.equals("") || def_value.equals("") || ghi_value.equals("")) {

            Snackbar snackbar = Snackbar.make(yourMainLayout, 
            "Please enter all fields!", Snackbar. LENGTH_SHORT);

            // Changing action button text color
            View sbView = snackbar.getView();
            TextView textView = (TextView) 
            sbView.findViewById(android.support.design.R.id.snackbar_text);
            textView.setTextColor(Color.YELLOW);
            snackbar.show();
        }

        else {
            Intent intent = new Intent(getApplicationContext(), next.class);
        }

在里面试试这个 if

Snackbar snackbar = Snackbar.make(rootLayout, "your error", Snackbar.LENGTH_LONG);
snackbar.show();
Snackbar snackbar = Snackbar
    .make("id of root layout", "content of displayed message", Snackbar.LENGTH_LONG);

snackbar.show();