2015-09-12 25 views
6

Sto lavorando all'app dove uso Tastiera personalizzata Urdu funziona bene ma il problema è che quando digito any-word, ad es. (سلام), il cursore diventa non funziona a metà carattere per esempio tagliare/copiare/incollare o eliminare (ا) carattere dalla metà da parola non funziona. io uso una tecnica approssimativa semplicemente aggiungendo caratteri ma funziona anche bene.Tastiera personalizzata pop up arabo/urdu su Edittext Numero

Per taping ogni alfabetico

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); 
      } 
     } 
    } 

Per pulsante indietro toccando

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)); 
       } 
      } 
     } 
    } 

Ecco lo screenshot cancellare il mio problema a voi gente enter image description here

ho usato un sacco di libreria e il codice da GitHub, ma non prendere buona idea

1) Keyboard-1 enter image description here

2) Keyboard-2 enter image description here

3) Keyboard-3 enter image description here

4) Keyboard-4

Ho controllato tutti questi tastiera e altre librerie, hanno lo stesso problema del cursore, come gestire completamente la mia tastiera personalizzati eliminando carattere da metà e copiare la mia copia testo scritto incollare come tastiera normale con EditText, grazie in anticipo a tutti voi :)

enter image description here

risposta

0

grazie a Dio ho risolto il mio problema usando la logica semplice.

Per pulsante Indietro

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); 
      } 
     } 
    } 

Per aggiungere alcun carattere

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); 
     } 
    } 

per copia incolla ho aggiunto qualche codice di linee di 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" />