почему Снэк-бар не отображается в моем приложении? - PullRequest
0 голосов
/ 07 октября 2018

В моем приложении я добавляю диалог подтверждения.Как только пользователь нажмет да, он должен загрузить какую-то дату.А потом покажи снэк-бар.Этот снэк-бар имеет одну кнопку.Снэк-бар не отображается в моем приложении.Что не так в моем коде?Я подозреваю, что способ, которым я передаю представление для Snackbar, не является правильным.Пожалуйста, помогите мне.

private void confirmeSaveInAzuere( ContentValues values){
    AlertDialog.Builder adb = new AlertDialog.Builder(this);
    adb.setTitle("Confirmation");
    adb.setMessage("Do you want to upload note to Azure?");
    adb.setIcon(R.mipmap.ic_warning_black_24dp);
    adb.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            Utility.hideKeyboard(NoteEditorActivity.this);
            PhotoLocationNote photoLocationNote = new PhotoLocationNote();
            photoLocationNote.setData(values);
            saveInAzureDb(photoLocationNote); // Uplaod is fine.
            // this toast also not showing.
            Toast.makeText(NoteEditorActivity.this, "Note data uploaded to Azure!", Toast.LENGTH_LONG).show(); 
            // I suspect the way I get the view is not correct
            View v = findViewById(R.id.note_editor).getRootView();
            LinearLayout linearLayout = findViewById(R.id.note_editor);
           // I tried both View v  and  LinearLayout linearLayout in the sanckbar, it didn't work
            Snackbar snackbar = Snackbar
                    .make(v, "All data saved!", Snackbar.LENGTH_LONG)
                    .setAction("Show all Lists", new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                            startActivity(new Intent(NoteEditorActivity.this, NoteListActivity.class));
                        }
                    });

            snackbar.show();
            return;
        }
    });
    adb.setNegativeButton("No", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            return;
        } });
    adb.show();
}

Я обнаружил, что вызов Scnckbar вне диалогового окна работает нормально.Но это не работает внутри диалога.

...