Я использую 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




Я не знаком с этой библиотекой, но вы должны найти представление 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();
Если я понимаю, способ получить значение из представления, которое находится внутри 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);
}
})
У вас все хорошо, но для получения значений вы должны получить их прямо из вызываемого представления.
@ Eddwhis. Большое спасибо. Он работает как шарм. Даже это не упоминается в документе.