Autore Topic: Disabilitare tastiera su edittext  (Letto 1358 volte)

Offline FeRoX

  • Utente junior
  • **
  • Post: 67
  • Respect: +2
    • Mostra profilo
Disabilitare tastiera su edittext
« il: 15 Maggio 2012, 18:09:39 CEST »
0
Ciao a tutti,
sto creando una calcolatrice.
L'espressione che l'utente scrive, viene scritta con una tastiera creata da me, inclusi bottoni, ecc. nel activity.
L'espressione sta in un edittext, perché voglio permettere a chi scrive di spostarsi con il cursore nell'espressione nel caso in cui uno voglia scrivere in una determinata parte dell'espressione.

Tipo se ho:

(1/2)*5+(4/8)
        ^
         |

Se io voglio aggiungere (4*3)+ dopo il * nell'espressione basta che ci clicco e ho il cursore li e ottengo (1/2)*(4*3)+5(4/8).
La questione è che se clicco l'edittext mi compare la tastiera di android, mentre io ho creato la mia di tastiera direttamente nell'applicazione.
come posso fare per disabilitare la tastiera nel momento che clicco sull'edittext? senza perdere la possibilità di avere il cursore che mi è molto utile???

Grazie.

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Disabilitare tastiera su edittext
« Risposta #1 il: 15 Maggio 2012, 18:18:37 CEST »
0
come posso fare per disabilitare la tastiera nel momento che clicco sull'edittext? senza perdere la possibilità di avere il cursore che mi è molto utile???

In questo modo dovresti impedire la comparsa della tastiera:

Codice (Java): [Seleziona]
editText.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
                return true;
        }
});

però non ti so dire se ti fa sparire anche il cursore...

Offline FeRoX

  • Utente junior
  • **
  • Post: 67
  • Respect: +2
    • Mostra profilo
Re:Disabilitare tastiera su edittext
« Risposta #2 il: 16 Maggio 2012, 14:05:10 CEST »
+1
Ho risolto, dopo molte ricerche con l'amico google.
Per chi vuole avere solo il cursore ma non la tastiera quando si clicca su un'edittext dovete fare cosi:

Create una classe, io l'ho chiamata NoImeEditText:

Codice (Java): [Seleziona]
public class NoImeEditText extends EditText {
    public NoImeEditText(Context context, AttributeSet attrs) {
       super(context, attrs);    
    }      
    @Override      
    public boolean onCheckIsTextEditor() {  
        return false;    
    }        
}
e poi usate nel file xml questo edittext invece che quello normale, basta che fate:

Codice (XML): [Seleziona]
<com.tuo.package.NoImeEditText
           android:id="@+id/etMio"
           .... altri parametri dell'edittext
/>

A me funziona alla grande, spero sia utile a qualcun'altro. ;)


EDIT: Questo metodo funziona fino alla versione 2.3 in ICS purtroppo non funziona =( non si vede il cursore....
Se qualcuno sa come riparare sarebbe ottimo ;)
« Ultima modifica: 17 Maggio 2012, 14:52:57 CEST da FeRoX »