对于从右到左(RTL)语言,在EditText inputType = textPassword中对齐提示文本

时间:2015-04-12 18:52:02

标签: android android-edittext right-to-left hint

我有一个将inputType设置为textPassword的EditText。 我希望输入将是从左到右的数字,但我想将提示对齐EditText的右侧。 当我尝试gravity=right时,它看起来没问题但是当用户点击EditText时,光标位于最左边的位置,他无法删除文本。如果他想删除文本,他需要将光标放在最正确的位置。

知道如何享受这两个世界吗?

将EditText与inputType=textPassword一起使用,提示右对齐并从左到右插入数字?

注意:使用android时,它似乎是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 感谢

2 个答案:

答案 0 :(得分: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" />

答案 1 :(得分:0)

我想完成@Greg Ennis 我希望这可以帮到你 我使用EditText作为密码,使用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) {

        }
    });

我在onCreate方法中编写以下代码,以便在输入密码时隐藏提示TextView:

urls.py