it-swarm.it

Evento per la gestione del focus del EditText

Qualcuno può suggerirmi qualche evento correlato al focus di EditText? La mia applicazione contiene un EditText, che accetta un URL al suo interno.

Ora il mio problema è che, dopo che l'utente inserirà l'URL nel campo e si sposterà ulteriormente, senza alcun evento di clic, ovvero quando lo stato attivo si sposterà da EditText, dovrebbe rilevare l'URL inserito e va al server.

Se ricevo la risposta utilizzando Json Parsing, sarà più conveniente.

128
Sheetal Shelar

Ecco l'esempio di listener di focus.

editText.setOnFocusChangeListener(new OnFocusChangeListener() {
    @Override
    public void onFocusChange(View view, boolean hasFocus) {
        if (hasFocus) {
            Toast.makeText(getApplicationContext(), "Got the focus", Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(getApplicationContext(), "Lost the focus", Toast.LENGTH_LONG).show();
        }
    }
});
486
Pratik
  1. Dichiara l'oggetto di EditText in cima alla classe:

     EditText myEditText;
    
  2. Trova EditText nella funzione onCreate e setOnFocusChangeListener di EditText:

    myEditText = findViewById(R.id.yourEditTextNameInxml); 
    
    myEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
                @Override
                public void onFocusChange(View view, boolean hasFocus) {
                    if (!hasFocus) {
                         Toast.makeText(this, "Focus Lose", Toast.LENGTH_SHORT).show();
                    }else{
                        Toast.makeText(this, "Get Focus", Toast.LENGTH_SHORT).show();
                    }
    
                }
            });
    

Funziona bene.

10
Wajid khan

Per quelli di noi che questa soluzione valida sopra non ha funzionato, c'è un'altra soluzione qui

 searchView.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View view, boolean isFocused) {
            if(!isFocused)
            {
                Toast.makeText(MainActivity.this,"not focused",Toast.LENGTH_SHORT).show();

            }
        }
    });
3
Dev_Man

quando in kotlin sarà simile a questo:

editText.setOnFocusChangeListener { view, hasFocus ->
        if (hasFocus) toast("focused") else toast("focuse lose")
    }
1
arjava