Ho un frammento con uno EditText
e all'interno dello Aggiungo uno TextWatcher
allo EditText
.afterTextChanged() chiamata in corso senza che il testo sia effettivamente modificato
Ogni volta che il frammento viene aggiunto per la seconda volta afterTextChanged(Editable s)
viene richiamato senza che il testo venga mai modificato.
Ecco un frammento di codice:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
...
myEditText = (EditText) v.findViewById(R.id.edit_text);
myEditText.addTextChangedListener(textWatcher);
...
}
TextWatcher textWatcher = new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
searchProgressBar.setVisibility(View.INVISIBLE);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
Log.d(TAG, "after text changed");
}
}
Ho anche impostare il frammento di mantenere il suo stato, e mantenere l'istanza del frammento nell'attività.
* Ogni volta che si aggiunge il frammento per la seconda volta * - è possibile condividere del codice correlato a questo? – Luksprog
È una cosa molto comune da fare quando si cambiano i frammenti. transaction.replace (r.id.container, fragment); transaction.commit(); niente di speciale, ho risolto il problema con l'aggiunta di una bandiera che pubblicherò una soluzione. – meh