2016-12-09 9 views
0

と何もできない私は、この持っている:私がnull以外のビュー

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ステートメントでビューのいずれかがヌルであるかどうかチェックしていますが、nullではありません。

ここで完全な方法です:

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"/> 

+0

変更によってどういう意味ですか? –

+0

@NigamPatro私は可視性を変更することはできません。背景色を設定することはできません。基本的には何でも行います –

+0

任意のライブラリを使用する代わりにカスタムダイアログを作成する必要があります。 –

答えて

1

.customView(v, false).customView(R.layout.phone_number_requester,false)を交換し、それが動作するはずです。

関連する問題