2015-09-12 1 views
6

Я работаю над приложением, где я использую Урду Пользовательская клавиатура его работа прекрасна, но проблема в том, что когда я печатаю любое слово, например. (سلام), курсор не работает в середине символа, например, вырезать/копировать/вставлять или удалять (ا) символ из середины слова не работает. Я использую грубую технику, просто добавляя символы, но также отлично работает.Pop up Арабская/Урду пользовательская клавиатура на Edittext Issue

Для записи на пленку любого алфавитного

private void addText(View v) { 
     // String b = ""; 
     // b = (String) v.getTag(); 
     // urdu_word.setText(b); 
     if (isEdit == true) { 
      String b = ""; 
      b = (String) v.getTag(); 
      if (b != null) { 
       Log.i("buttonsOnclick", b); 
       // adding text in Edittext 
       mEt.append(b); 
      } 
     } 
    } 

Для задней кнопки постукивания

private void isBack(View v) { 
     if (isEdit == true) { 
      CharSequence cc = mEt.getText(); 
      if (cc != null && cc.length() > 0) { 
       { 
        mEt.setText(""); 
        mEt.append(cc.subSequence(0, cc.length() - 1)); 
       } 
      } 
     } 
    } 

Вот скриншот очистить мою проблему для вас людей enter image description here

Я использовал много библиотеки и кода из GitHub, но не поймать хорошую идею

1) Keyboard-1 enter image description here

2) Keyboard-2 enter image description here

3) Keyboard-3 enter image description here

4) Keyboard-4

я проверил все эти клавиатуры и больше от LIBS, имеет такое же вопрос курсора, как в полной мере управлять своей пользовательской клавиатурой, удалив символ из середины и скопировать мою письменный текст копию пастообразной обычной клавиатуры с EditText, заранее спасибо всем вам :)

enter image description here

ответ

0

Слава Богу я решил свою проблему с помощью простой логики.

Для задней кнопки

private void isBack(View v) { 
     // char[] tempChar = null; 
     if ((mEt.getText().toString().length() > 0)) { 
      int temp = mEt.getSelectionEnd() - 1; 
      if (temp >= 0) { 
       mEt.setText((mEt.getText().toString() 
         .substring(0, mEt.getSelectionEnd() - 1).concat(mEt 
         .getText() 
         .toString() 
         .substring(mEt.getSelectionEnd(), 
           mEt.getText().length())))); 
       mEt.setSelection(temp); 
      } 
     } 
    } 

Для добавления любого символа

private void addText(View v) { 
     int temp = mEt.getSelectionEnd(); 
     if (temp >= 0) { 
      String b = ""; 
      b = (String) v.getTag(); 

      mEt.setText((mEt.getText().toString() 
        .substring(0, mEt.getSelectionEnd()) + b.concat(mEt 
        .getText().toString() 
        .substring(mEt.getSelectionEnd(), mEt.getText().length())))); 
      mEt.setSelection(temp + 1); 
     } 
    } 

для копирования пасты я добавил несколько строк кода EditText

<EditText 
     android:id="@+id/xEt" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="center" 
     android:background="@drawable/edittextshape" 
     android:ems="10" 
     android:focusable="true" 
     android:focusableInTouchMode="true" 
     android:gravity="top" 
     android:imeOptions="actionDone" 
     android:padding="15dp" 
     android:singleLine="false" 
     android:visibility="visible" />