2016-10-04 9 views
0

등록하는 동안 사용자가 email 또는 mobile을 입력하면 오류가 EditText으로 설정됩니다.InputTextLayout에서 EditText에 오류를 설정하는 동안 오류 아이콘 만 표시됩니다.

과 :

<android.support.design.widget.TextInputLayout 
     android:id="@+id/txt_input_mobile_number" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <EditText 
      android:id="@+id/input_mobile_number" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:hint="Mobile number" 
      android:maxLength="10" 
      android:inputType="number" 
      android:maxLines="1"/> 

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

MyFragment.java 구현 OnKeyListener 아래 : 코드 아래

확인하시기 바랍니다, 만 오류 아이콘이 다른 같은 보이지 않는 오류 상자가 화면에 표시 아래

@Override 
    public boolean onKey(View v, int keyCode, KeyEvent event) { 
     if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
       (keyCode == KeyEvent.KEYCODE_ENTER)) { 
      // perform validation of data here 
      switch (v.getId()) { 

       case R.id.input_mobile_number: 
        EditText editMobile = (EditText)getActivity().findViewById(R.id.input_mobile_number); 
        Editable phone = binding.inputMobileNumber.getText(); 
        if (phone != null && isValidMobile(phone.toString())) { 
         editMobile.setError("Please enter valid mobile number"); 
         editMobile.requestFocus(); 
        } 
        break; 
      } 
      return true; 
     } 
     return false; 
    } 

입니다 기호 만 enter image description here 오류 메시지와

enter image description here

+0

원하는 버전과 원하는 버전을 얻는 것이 어렵습니다. 그래서 우리는 : * 사용자가 등록하는 동안 잘못된 이메일이나 모바일을 입력하면 EditText에 오류가 설정됩니다. 아래 스크린 샷이 표시됩니다. 오류 아이콘 만 표시됩니다. 다른 것과 같은 오류 상자가 아닙니다. * ... 및 일부 코드 덤프 ** 문제가 무엇인지 표시하지 않고 ** – Selvin

+1

'EditText'로 설정하려는'InputTextLayout ' 그래서 .. – Ironman

답변

2

.

TextInputLayout tilObj = (TextInputLayout) findViewById(R.id.txt_input_mobile_number); 
tilObj .setErrorEnabled(true); 
tilObj .setError("Please enter valid mobile number"); 
1

을 알아 냈어! 우리가 TextInputLayout를 사용하는 경우

우리는 설정 오류로하지 EditText하지만 TextInputLayout 자체해야합니다.

그래서 나는 아래로 내 코드를 변경 한 : 당신은 당신의 요구 사항에 대한 TextInputLayout 대신 EditText를 사용해야합니다

@Override 
     public boolean onKey(View v, int keyCode, KeyEvent event) { 
      if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
        (keyCode == KeyEvent.KEYCODE_ENTER)) { 
       // perform validation of data here 
       switch (v.getId()) { 

        case R.id.input_mobile_number: 
         // check it is TextInputLayout not EditText 
         TextInputLayout editMobile = (EditText)getActivity().findViewById(R.id.txt_input_mobile_number); 
         Editable phone = binding.inputMobileNumber.getText(); 
         if (phone != null && isValidMobile(phone.toString())) { 
          editMobile.setError("Please enter valid mobile number"); 
          editMobile.requestFocus(); 
         } 
         break; 
       } 
       return true; 
      } 
      return false; 
     } 
0

두 TextInputLayout 사이의 공간이 부족할 수 있으며 오류 메시지가 표시되지 않을 수 있습니다. 둘 사이에 여백을 두십시오.