2015-04-12 2 views
2

У меня есть EditText с inputType, установленным на textPassword. Я хочу, чтобы ввод был числом слева направо, но я хочу выровнять подсказку справа от EditText. Когда я пробовал gravity=right, все выглядело нормально, но когда пользователь нажимает на EditText, курсор находится в самом левом положении, и он не может удалить текст. Если он хочет удалить текст, ему нужно поместить курсор в самое правильное место.выравнивать текст подсказки в EditText inputType = textPassword, для языков справа налево (RTL)

Любая идея, как я могу наслаждаться обоими мирами?

Используйте EditText с inputType=textPassword, подсказка выровнена вправо и вставьте цифры слева направо?

Примечание: Это, кажется, ошибка в Android рамки, при использовании андроида: inputType = "textPassword": https://code.google.com/p/android/issues/detail?id=201471

<EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:inputType="textPassword" 
     android:ems="10" 
     android:id="@+id/txt_password" 
     android:layout_centerVertical="true" 
     android:layout_centerHorizontal="true" 
     android:hint="סיסמא" 
     android:gravity="right" /> 

clicking the edittext puts the cursor at the left position and I can't delete the text now

empty edittext Благодаря

+0

показать нам свой код – Arlind

+0

Этот ответ может быть полезен (или возможный дубликат): http://stackoverflow.com/questions/35403731/hint-alignment-to-the-right-of-password-edittext –

ответ

0

EditText является построенный для выравнивания текста подсказки так же, как текст, введенный пользователем. То, как я это выполнил, помещая как изображения, так и текст в правую часть EditText, просто определяет другое представление, которое выровнено справа от него.

Вы должны иметь родительский вид быть RelativeLayout, чтобы сделать это, но она хорошо работает:

<EditText android:id="@+id/test" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" /> 

<TextView android:id="@+id/hint" 
    android:text="Something" 
    android:layout_alignRight="@id/test" 
    android:layout_alignBottom="@id/test" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 
+0

извините, но я не понял вас решение. как другой текст поможет мне здесь? –

0

Я хочу закончить @Greg Эннис Я надеюсь, что это может помочь вам я использую EditText для пароль и TextView для это намек, как показано ниже:

<RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 
    <EditText 
     android:id="@+id/password" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="10dp" 
     android:background="@color/white" 
     android:inputType="textPassword" 
     android:padding="10dp" 
     android:singleLine="true" 
     android:textColor="@color/input_login" 
     android:textColorHint="@color/input_login_hint" 
     /> 
     <TextView android:id="@+id/hint" 
     android:hint="@string/hint_password" 
     android:background="@color/white" 
     android:textColorHint="@color/input_login_hint" 
     android:padding="10dp" 
     android:singleLine="true" 
     android:layout_alignRight="@id/password" 
     android:layout_alignTop="@id/password" 
     android:textSize="17dp" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/password" 
     /> 
    </RelativeLayout> 

и я пишу следующий код в OnCreate метод, чтобы скрыть подсказку TextView при входе пароль:

EditText edtPassword; 
    TextView txtHint; 
    edtPassword = (EditText) findViewById(R.id.password); 
    txtHint = (TextView) findViewById(R.id.hint); 

    edtPassword.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

     } 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      String enterPass = edtPassword.getText().toString(); 

      if(start == 0){ 
       txtHint.setHint(R.string.hint_password); 


      }else { 
       txtHint.setHint(""); 
      } 

     } 

     @Override 
     public void afterTextChanged(Editable s) { 

     } 
    }); 
Смежные вопросы