Сделайте Действие Android, похож на диалоговое окно

Я пытаюсь открыть диалоговое окно при щелчке виджета. Я решил проблему, очищающую действие, запущенное по щелчку с android:theme="@android:style/Theme.Dialog". К сожалению, я не могу достигнуть того же вида диалогового окна.

Это - результат:

Диалоговое окно от виджета

Вместо этого я хотел бы достигнуть этого результата (за исключением кнопки, конечно):

Желаемое диалоговое окно от виджета

(диалоговое окно виджета Вы видите хранение продвинутого экрана),

Поскольку Вы видите, что существуют некоторые различия: цвет элементов списка, цвет текста и разделителя элемента списка. Существует ли предопределенная тема/стиль для получения того же вида стандартного диалогового окна? В противном случае, за чем шаги должны следовать для достижения того результата?

Я видел, что виджет, обеспеченный FoxyRing, имеет поведение, которое я хотел бы иметь.

17
задан Vadim Kotov 21 July 2017 в 09:49
поделиться

3 ответа

Почему бы не использовать «традиционное» основное действие с прозрачным фоном

и не вызвать из него стандартный диалог?

...хорошо, если я вас правильно понял, это очень легко поможет, не так ли?

22
ответ дан 30 November 2019 в 13:12
поделиться

вы можете динамически создать диалоговое окно следующим образом:

        Context mContext = this;
        Dialog dialog = new Dialog(mContext);

        dialog.setContentView(R.layout.data_dialog);
        dialog.setTitle("Your title");

        AlertDialog.Builder builder;
        AlertDialog alertDialog;

        LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
        View layout = inflater.inflate(R.layout.data_dialog,
                (ViewGroup) findViewById(R.id.AbsoluteLayout01));

        builder = new AlertDialog.Builder(mContext);
        builder.setView(layout);
        alertDialog = builder.create();
        alertDialog.show();

        final EditText txtUsername = (EditText) layout.findViewById(R.id.txtUsername);

        final AlertDialog thisDialog = alertDialog;

         Button btnSave = (Button) layout.findViewById(R.id.btnSave);
         btnSave.setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {

                String strtxtUsername = txtUsername.getText().toString();

                //do something...

             }
         });                

Чтобы закрыть диалоговое окно, вызовите thisDialog.dismiss ();

Стиль выглядит как обычный Theme.Light.NoTitleBar с ListView со значком и текст заголовка.

Надеюсь, это поможет!

3
ответ дан 30 November 2019 в 13:12
поделиться

На самом деле существует гораздо более простой способ сделать это, чем то, что я предложил ниже.
Взгляните на: https://developer.android.com/guide/topics/ui/dialogs.html под заголовок «Добавление списка».

0
ответ дан 30 November 2019 в 13:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: