В моем приложении я добавляю диалог подтверждения.Как только пользователь нажмет да, он должен загрузить какую-то дату.А потом покажи снэк-бар.Этот снэк-бар имеет одну кнопку.Снэк-бар не отображается в моем приложении.Что не так в моем коде?Я подозреваю, что способ, которым я передаю представление для 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 вне диалогового окна работает нормально.Но это не работает внутри диалога.