Autore Topic: input da Tastiera  (Letto 949 volte)

Offline aladin

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S
input da Tastiera
« il: 02 Marzo 2011, 16:40:45 CET »
0
             Salve a tutti mi sono appena iscritto e spero che qualche anima buona  O:-) possa aiutarmi,sperando che un giorno posso essere in grado di aiutare qualcuno
Vorrei che quando premo il  tasto 'x' della tastiera virtuale venga visualizzata solo la x o un altra lettera o una sequenza dli lettere.
il problema è che, se come prima lettere premo la x funziona mentre se premo un carattere diverso si blocca il programma.
come posso fare?


 
Codice (Java): [Seleziona]
   final EditText editText1=(EditText)findViewById(R.id.editText1);
        editText1.setText("");
       
       editText1.addTextChangedListener(new TextWatcher() {
         
//        EditText edit1=(EditText)findViewById(R.id.editText1);
                public void onTextChanged(CharSequence s, int start, int before, int count) {
                        char c;
                c=s.charAt(start);
                        Log.i("log text",old_text +"  "+old_text.length()+"  " + start);
                        if(c!='x'){
                editText1.setText(old_text.toString());
                                                }
                        }
               
                public void beforeTextChanged(CharSequence s, int start, int count,     int after) {
                        // TODO Auto-generated method stub             
                        old_text=editText1.getText().toString();               
                        Log.i("log bef",old_text +"  "+ s.subSequence(0,start));
                }
               
               
                public void afterTextChanged(Editable s) {                     
                }
               
               
        });
   
    }
« Ultima modifica: 02 Marzo 2011, 16:49:42 CET da Ricky` »

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:input da Tastiera
« Risposta #1 il: 02 Marzo 2011, 17:07:40 CET »
0
1) Posta il logcat dell'errore. Se é un NullPointerException controlla che old_text sia inizializzato quando lo usi per settarlo come valore dell'EditText.
2) Non é questo il problema, ma perché fai old_text.toString() se old_text é giá String?
Postate il LogCat LogCat LogCat LogCat LogCat

Offline aladin

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S
Re:input da Tastiera
« Risposta #2 il: 02 Marzo 2011, 19:17:16 CET »
0
1) Posta il logcat dell'errore. Se é un NullPointerException controlla che old_text sia inizializzato quando lo usi per settarlo come valore dell'EditText.

se modifico quella linea si blocca perché va in loop

ecco l'errore :(

03-02 17:35:32.496: DEBUG/AndroidRuntime(285): Shutting down VM

03-02 17:35:32.496: WARN/dalvikvm(285): threadid=1: thread exiting with uncaught exception (group=0x4001d800)

03-02 17:35:32.535: ERROR/AndroidRuntime(285): FATAL EXCEPTION: main

03-02 17:35:32.535: ERROR/AndroidRuntime(285): java.lang.IndexOutOfBoundsException: charAt: 0 >= length 0

03-02 17:35:32.535: ERROR/AndroidRuntime(285):     at android.text.SpannableStringBuilder.charAt(SpannableStringBuilder.java:112)

03-02 17:35:32.535: ERROR/AndroidRuntime(285):     at it.prova.main$1.onTextChanged(main.java:41)

03-02 17:35:32.535: ERROR/AndroidRuntime(285):     at android.widget.TextView.sendOnTextChanged(TextView.java:6131)


ci vorrebbe un comando keybd_event di windows,  simulando il tasto del

oppure utilizzare la tastiera senza mandare l'out sulla edittext

2) Non é questo il problema, ma perché fai old_text.toString() se old_text é giá String?
le ho provate tutte inizialmente era solo old_text





Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:input da Tastiera
« Risposta #3 il: 02 Marzo 2011, 19:22:02 CET »
0
Potresti usare i tag quote e code per favore?

Comunque ti basta usare il metodo

http://download.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#indexOf(int)

e valutare se nela tua stringa c'è la x o meno.
« Ultima modifica: 02 Marzo 2011, 19:25:08 CET da Ricky` »

Offline aladin

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S
Re:input da Tastiera
« Risposta #4 il: 02 Marzo 2011, 19:24:06 CET »
0
Potresti usare i tag quote e code per favore?
he non saprei. Cos'e

Offline dessorry

  • Utente normale
  • ***
  • Post: 230
  • Who lived hoping died craping
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire HD
  • Play Store ID:
    dessorry
  • Sistema operativo:
    Windows, Ubuntu, Kubuntu
Re:input da Tastiera
« Risposta #5 il: 03 Marzo 2011, 03:10:18 CET »
0
quando quoti devi metterlo nel tag quote (significa che devi pigiare il bottone apposito prima di postare)

Offline aladin

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S
Re:input da Tastiera
« Risposta #6 il: 04 Marzo 2011, 15:21:25 CET »
0
Funziona :)
Grazie per la pazienza e gli aiuti :)