Материал Диалоговая форма не работает

Я использую afollestad MaterialDialog Library (https://github.com/afollestad/material-dialogs) и с использованием настраиваемого представления. Внутри представления у меня есть пять входов и счетчик. Но я пытаюсь получить значения из ввода, но не работаю. Также мне нужно заполнить счетчик из api.

   MaterialDialog dialog = new MaterialDialog.Builder(this)
                .title("Edit Paid Amount")
                .customView(R.layout.edit_payment_model, true)
                .positiveText("Update Payment").build();
Spinner spinner= (Spinner) dialog.getCustomView();
 dialog.show();

Может ли кто-нибудь помочь мне, как я могу этого добиться?

Я пробовал диалоговое окно предупреждения по умолчанию, которое работает

 AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
        LayoutInflater inflater = this.getLayoutInflater();

        View dialogView= inflater.inflate(R.layout.edit_payment_model, null);
        dialogBuilder.setView(dialogView);
        EditText editText = (EditText)
                dialogView.findViewById(R.id.editPaymentAmount);

        editText.setText("test label");
        dialogBuilder.create().show();

Даже я проверил эту проблему https://github.com/afollestad/material-dialogs/issues/230

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
2 103
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я не знаком с этой библиотекой, но вы должны найти представление spinner / edittext в пользовательском представлении.

    MaterialDialog dialog = new MaterialDialog.Builder(this)
                    .title("Edit Paid Amount")
                    .customView(R.layout.edit_payment_model, true)
                    .positiveText("Update Payment")
                    .build();

    View customView = dialog.getCustomView();
    Spinner spinner = (Spinner) customView.findViewById(R.id.spinner)
    EditText editText = (EditText) customView.findViewById(R.id.editPaymentAmount);
    editText.setText("test label");
    dialog.show();

@ Eddwhis. Большое спасибо. Он работает как шарм. Даже это не упоминается в документе.

scott 11.07.2018 16:04

Если я понимаю, способ получить значение из представления, которое находится внутри AlertDialog

LayoutInflater inflater = getActivity().getLayoutInflater();

View dialogView = inflater.inflate(R.layout.edit_license, null);
builder.setView(dialogView)
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int id) {

            EditText valueView = (EditText) dialogView.findViewById(R.id.license_value); //here
            if (valueView == null) Log.d("AA", "NULL");
            else{
                String value = valueView.getText().toString();
                mListener.onDialogPositiveClick(EditLicenseDialogFragment.this, value);
            }
        })

У вас все хорошо, но для получения значений вы должны получить их прямо из вызываемого представления.

Другие вопросы по теме