我无法使用非空视图执行任何操作

时间:2016-12-09 12:09:31

标签: android android-layout android-view android-dialog

我有这个:

View v = getLayoutInflater().inflate(R.layout.phone_number_requester, null);
final EditText editText = (EditText) v.findViewById(R.id.phoneNumberET);
v.findViewById(R.id.verificationCodeET).setVisibility(View.GONE);

但没有任何反应。

我通过if语句检查是否有任何视图为空,但它不是空的。

这是完整的方法:

 private void askForPhoneNumber(){
    View v = getLayoutInflater().inflate(R.layout.phone_number_requester, null);
    final EditText editText = (EditText) v.findViewById(R.id.phoneNumberET);
    v.findViewById(R.id.verificationCodeET).setVisibility(View.GONE);
    final PhoneNumberUtil pnu = PhoneNumberUtil.getInstance();
    new MaterialDialog.Builder(this)
            .title(R.string.requestPhoneNumber)
            .customView(R.layout.phone_number_requester,false)
            .cancelable(false)
            .autoDismiss(false)
            .positiveText(android.R.string.ok)
            .onPositive(new MaterialDialog.SingleButtonCallback() {
                @Override
                public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
                    if (OK){
                        sendSMS();
                    }

                    else if (editText.getText().toString().trim().isEmpty()){
                        editText.setError(getString(R.string.required));
                    }
                }
            }).show();
  }

我可以成功地将自定义视图添加到对话框中,但我无法更改任何视图。为什么呢?

这是布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="13dp">

<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/phoneNumberInfo"
    android:textSize="12sp"
    android:textStyle="normal|italic" />

<com.rey.material.widget.EditText
    android:id="@+id/phoneNumberET"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/phoneNumber"
    android:inputType="phone"
    app:et_dividerAnimDuration="2"
    app:et_dividerHeight="1dp"
    app:et_helper="@string/phoneNumberHelper"
    app:et_supportMode="helperWithError" />

<com.rey.material.widget.EditText
    android:id="@+id/verificationCodeET"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:hint="@string/verificationCode"
    android:inputType="number"
    app:et_dividerAnimDuration="2"
    app:et_supportMode="helper"/>

1 个答案:

答案 0 :(得分:1)

.customView(R.layout.phone_number_requester,false)替换为.customView(v, false),它应该有效。