0

浮動編集のテキストをviewgroup(LinearLayout)から取得しようとしています。シンプルにEditTextうまく動作しますが、それを得ることはできません。ここViewGroupのフローティング編集の子を取得しよう

は私のコードです:

XMLコード:

<LinearLayout 
      android:id="@+id/signup_form" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="64dp" 
      android:orientation="vertical"> 

      <android.support.design.widget.TextInputLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content"> 

       <EditText 
        android:id="@+id/et_name" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:hint="@string/hint_name" 
        android:inputType="textPersonName" 
        android:maxLines="1" 
        android:singleLine="true" /> 

      </android.support.design.widget.TextInputLayout> 

Javaコード:

for (int i = 0; i < layout.getChildCount(); i++) { 

      View v = layout.getChildAt(i); 

      if (v instanceof EditText) { 

       EditText editText = (EditText) v; 

       if (editText.getInputType() == InputType.TYPE_TEXT_VARIATION_PERSON_NAME + 1) { 

        isValid = validateName(et_name); 

        if (!isValid) { 

         break; 
        } 

       } 

この(android.support.design.widget.TextInputLayout )がLinearLayoutとEditTextの間に来ていますそれを解決する方法はありません。事前

+0

それはあなたの問題が何であるか明確ではないのです。 'EditText'への参照が必要な場合は' findViewById() 'だけを使用してください。 –

+0

おかげで@MikeMあなたの助言のために!今私は以下の答えから私の問題を解決しました。 – Manish

答えて

1

おかげでこれは動作するはずです:

if (v instanceof TextInputLayout) { 
    EditText editText = (EditText) v.getChildAt(0); 

しかし、あなたはおそらく、あなたが例外に遭遇していないことを確認するためにいくつかのより多くのチェックを追加する必要があります。

+0

ありがとうKevinpelgrims !!!問題が解決しました :) – Manish

関連する問題