Autore Topic: Rimuovere focus da edittext  (Letto 875 volte)

Offline Melanogaster

  • Utente normale
  • ***
  • Post: 260
  • Respect: +11
    • Mostra profilo
  • Dispositivo Android:
    SII
  • Sistema operativo:
    Kubuntu
Rimuovere focus da edittext
« il: 25 Giugno 2013, 10:10:51 CEST »
0
Ciao a tutti,
purtroppo mi son fermato da parecchio tempo e problemi che magari un tempo erano banali ora non lo sono più :o
Sono riuscito seguendo qualche tips suggerito da stackoverflow a rimuovere il focus automatico da un edittext all'avvio dell'activity, ma ora ho un secondo problema: una volta premuto sull'edittext, il focus cambia e viene assegnato all'edittext, giustamente.
Io vorrei che premendo fuori dall'edittext, il focus venisse nuovamente rimosso.

Sapete aiutarmi?

Grazie :)

Offline elfo83

  • Utente normale
  • ***
  • Post: 287
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:Rimuovere focus da edittext
« Risposta #1 il: 25 Giugno 2013, 16:27:13 CEST »
0
Usa setFocusable(false) e setFocusableInTouchMode(false) quando clicchi all'esterno della tua edittext

Offline Melanogaster

  • Utente normale
  • ***
  • Post: 260
  • Respect: +11
    • Mostra profilo
  • Dispositivo Android:
    SII
  • Sistema operativo:
    Kubuntu
Re:Rimuovere focus da edittext
« Risposta #2 il: 25 Giugno 2013, 19:21:13 CEST »
0
E come li dovrei impostare?

Offline elfo83

  • Utente normale
  • ***
  • Post: 287
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:Rimuovere focus da edittext
« Risposta #3 il: 25 Giugno 2013, 20:49:02 CEST »
0
Nel file xml puoi aggiungere questo attributo xml android:focusable=false . In questo modo l'edittext non apre la tastiera quando l'activity parte. Quando vuoi che l'edittext riprenda il focus normale (cioè che la tastiera si apra quando ci clicchi sopra) basta inserire nomeEditText.setFocusable(true); nomeEditText.setFocusableInTouchMode(true);

Offline Melanogaster

  • Utente normale
  • ***
  • Post: 260
  • Respect: +11
    • Mostra profilo
  • Dispositivo Android:
    SII
  • Sistema operativo:
    Kubuntu
Re:Rimuovere focus da edittext
« Risposta #4 il: 26 Giugno 2013, 02:19:08 CEST »
0
Secondo me non é funzionale a ciò che vorrei realizzare, il focus sull'edittext son già riuscito a rimuoverlo all'avvio :)

Offline Angelus84

  • Utente junior
  • **
  • Post: 59
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Next
  • Play Store ID:
    Angelus
  • Sistema operativo:
    Windows 7
Re:Rimuovere focus da edittext
« Risposta #5 il: 26 Giugno 2013, 02:25:02 CEST »
0
Secondo me non é funzionale a ciò che vorrei realizzare, il focus sull'edittext son già riuscito a rimuoverlo all'avvio :)

Nel manifest devi aggiungere questo
Codice (XML): [Seleziona]
android:windowSoftInputMode="stateHidden"
nell'activity

Offline elfo83

  • Utente normale
  • ***
  • Post: 287
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:Rimuovere focus da edittext
« Risposta #6 il: 26 Giugno 2013, 02:26:11 CEST »
0
Prova ma non funziona sempre...se hai ancora problemi cerca di spiegare meglio quello che vorresti fare

Offline Melanogaster

  • Utente normale
  • ***
  • Post: 260
  • Respect: +11
    • Mostra profilo
  • Dispositivo Android:
    SII
  • Sistema operativo:
    Kubuntu
Re:Rimuovere focus da edittext
« Risposta #7 il: 26 Giugno 2013, 09:48:28 CEST »
0
Grazie per i vostri suggerimenti, ma son tutti workaround che già conosco e non fanno al caso mio...:)

Post unito: 26 Giugno 2013, 10:55:18 CEST
Provo a spiegare piu' dettagliatamente il problema: ho un EditText all'interno di un RelativeLayout fill_parent.
All'avvio riceverebbe l'autofocus, se non fosse che sono riuscito a toglierlo, quindi non riceve autofocus (quindi nessuna tastiera da nascondere).
Al detto EditText e' associato un evento onFocusChangeListener, che si innesca non appena l'utente preme sull'EditText per digitare qualcosa.
Io vorrei che quando l'utente finisci di digitare, e quindi nasconde la tastiera e magari clicka al di fuori dell'EditText il focus si perda.

Pensavo di associare un onClickListener al RelativeLayout ma sarebbe una cosa troppo sporca e con effetti collaterali magari peggiori che non metterlo.

Per quello chiedo aiuto ai piu' esperti :)
« Ultima modifica: 26 Giugno 2013, 10:55:18 CEST da Melanogaster, Reason: Merged DoublePost »

Offline Angelus84

  • Utente junior
  • **
  • Post: 59
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Next
  • Play Store ID:
    Angelus
  • Sistema operativo:
    Windows 7
Re:Rimuovere focus da edittext
« Risposta #8 il: 26 Giugno 2013, 14:58:55 CEST »
0
Grazie per i vostri suggerimenti, ma son tutti workaround che già conosco e non fanno al caso mio...:)

Post unito: 26 Giugno 2013, 10:55:18 CEST
Provo a spiegare piu' dettagliatamente il problema: ho un EditText all'interno di un RelativeLayout fill_parent.
All'avvio riceverebbe l'autofocus, se non fosse che sono riuscito a toglierlo, quindi non riceve autofocus (quindi nessuna tastiera da nascondere).
Al detto EditText e' associato un evento onFocusChangeListener, che si innesca non appena l'utente preme sull'EditText per digitare qualcosa.
Io vorrei che quando l'utente finisci di digitare, e quindi nasconde la tastiera e magari clicka al di fuori dell'EditText il focus si perda.


Pensavo di associare un onClickListener al RelativeLayout ma sarebbe una cosa troppo sporca e con effetti collaterali magari peggiori che non metterlo.

Per quello chiedo aiuto ai piu' esperti :)

Questo lo inserisci nel listener

Codice (Java): [Seleziona]
InputMethodManager imm = (InputMethodManager)getSystemService(
                                              Context.INPUT_METHOD_SERVICE);
                                        imm.hideSoftInputFromWindow(NOME_EDITTEXT.getWindowToken(), 0);