你能从右到左做一个EditText输入吗?

时间:2011-02-22 20:46:48

标签: android input android-edittext

我想知道你是否可以控制EditText上的输入从右向左移动? EditText也必须支持从右到左的插入/删除等。有没有办法做到这一点?

10 个答案:

答案 0 :(得分:18)

将此添加到您的editText

        android:textDirection="rtl"

答案 1 :(得分:13)

听起来你只需要将重力设置在右边。

答案 2 :(得分:7)

请使用:

android:layout_gravity="start"
android:textAlignment="viewStart"

答案 3 :(得分:2)

试试这段代码

//initialize
EditText userName = (EditText)findViewById(R.id.userName);

//set gravity for userName 
userName.setGravity(Gravity.RIGHT);

答案 4 :(得分:0)

使用以下代码可以通过手动方式完成此操作:

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {

    if (keyCode == KeyEvent.KEYCODE_MENU) {
        // Each time click Menu button on the bar
        // Set the cursor to the first index
        mEtEmail.setSelection(0); // YOUR EDIT TEXT
    } 

    return super.onKeyUp(keyCode, event);
}

p / s:或者您可以更改

  

KeyEvent.KEYCODE_MENU

按照您的意愿,

或者您可以尝试使用Bidi

谢谢,

答案 5 :(得分:0)

您可以在xml中添加到您的编辑文本中

从左到右:

   android:textDirection="firstStrongLtr"                    

从右到左:

   android:textDirection="firstStrongRtl"                    

答案 6 :(得分:0)

正确的方法是使用:

android:textAlignment="viewStart"

因为它将自动用于LTR和RTL。

答案 7 :(得分:0)

   <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/edit_supporter_last_name"
            style="@style/TextInputEditText"
            android:gravity="right"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:drawableEnd="@drawable/ic_person_black_24dp"
            android:inputType="text"
            android:drawablePadding="@dimen/default_margin"
            android:maxLength="10"
            android:padding="@dimen/default_margin" />

输出:

enter image description here

答案 8 :(得分:-1)

试试这个......

  1. 初始化用户名和密码字段。

    EditText username = (EditText) findViewById(R.id.username);
    
    EditText password = (EditText) findViewById(R.id.password);
    
  2. 获取阿拉伯语等的RTL语言的当前语言环境。

    String getCurrentLocale = Locale.getDefault().getDisplayLanguage();
    
  3. 然后我们应该检查为RTL或LTR选择哪种语言。

    if(getCurrentLocale.equalEgnoreCase("English")){          //LTR languages
    
          username.setGravity(Gravity.Left);
    
          password.setGravity(Gravity.Left);
    
     }else{                                                     //RTL languages
    
         username.setGravity(Gravity.Right);
    
         password.setGravity(Gravity.Right);
    
     }
    
  4. 快乐的编码......!

答案 9 :(得分:-1)

尝试以下代码

AutoCompleteTextView autoCompleteTextView = findViewById(R.id.main_searchBar);
autoCompleteTextView.setGravity(Gravity.RIGHT);