Как использовать Snackbar в относительной раскладке вместо тостов? - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь использовать Snackbar вместо тостов в относительной раскладке для отображения ошибки (если поле ввода пустое). Но я не могу добавить закусочную вместо тоста.

Ниже мой код для тостов -

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 полей будет пустым, будет отображено строковое сообщение, иначе оно перейдет к следующему действию.

РЕДАКТИРОВАТЬ -

  1. 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();
    

Невозможно использовать это, так как я не использую координирующий вывод.

Ответы [ 3 ]

0 голосов
/ 10 мая 2018

Попробуйте это внутри if

Snackbar snackbar = Snackbar.make(rootLayout, "your error", Snackbar.LENGTH_LONG);
snackbar.show();
0 голосов
/ 10 мая 2018
Snackbar snackbar = Snackbar
    .make("id of root layout", "content of displayed message", Snackbar.LENGTH_LONG);

snackbar.show();
0 голосов
/ 10 мая 2018

Попробуйте это:

     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);
        }
...