我想知道你是否可以控制EditText上的輸入從右向左移動? EditText也必須支持從右向左的插入/刪除等。有沒有辦法做到這一點?你能從右向左做一個EditText輸入嗎?
回答
這聽起來像你只需要將重力設置在右側。
@很.......如果我們將Gravity設置爲右側我們可以將文字設置在右側。 – 2011-10-24 10:20:00
他要求文字從右到左寫,而不是正確的文字。 「右」的作品將寫成「THGIR」 – 2013-07-23 23:44:18
@CamilleSévigny我不相信這是真的。在評論中他說這是一個美國貨幣領域。如果是貨幣字段,則按該順序輸入1-0-0-0不應顯示爲0001。它應該顯示爲$ 10.00。它應該按照輸入的順序顯示,但是按照正確的順序排列。在任何類型的美國貨幣系統中,您都不會輸入4-3-2-1來輸入$ 12.34 ...這個國家的收銀機不是這樣工作的。 3對這個答案進行了降低投票,但是他真正要問的是如何正確對齊文本。 – Rich 2013-07-24 22:49:09
試試這個代碼
//initialize
EditText userName = (EditText)findViewById(R.id.userName);
//set gravity for userName
userName.setGravity(Gravity.RIGHT);
有手工方式通過使用下面的代碼來做到這一點:
@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。
謝謝,
試試這個....
初始化用戶名和密碼字段。
EditText username = (EditText) findViewById(R.id.username); EditText password = (EditText) findViewById(R.id.password);
獲取RTL語言(如阿拉伯語等)的當前語言環境。
String getCurrentLocale = Locale.getDefault().getDisplayLanguage();
然後我們應該檢查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); }
快樂編碼...!
添加到您的EDITTEXT
android:textDirection="rtl"
請注意以下事項: - android:textDirection需要API級別17 – 2017-03-27 08:02:16
只要使用此:
android:layout_gravity="start"
android:textAlignment="viewStart"
編輯文本RTL支持正在處理此問題。 – Kathi 2018-01-16 18:47:18
什麼實際上是你想達到什麼樣的?你可能想要插入一個阿拉伯字符,將這個行爲添加到文本字段。它必須是第一個字符,但我不知道它可能是哪個字符。 – 2011-02-22 20:49:21
我有一個帶面具的(美國)貨幣領域,我希望進入從右向左移動。 – ninjasense 2011-02-22 21:01:59
@LoïcFaure-Lacroix是的,當我用阿拉伯語寫的,然後我們可以看到文本從右到左 – 2011-10-24 11:52:46