EditText setOnFocusChangeListener en todos los EditTexts
Tengo varios campos EditText que quiero guardar en la base de datos SQLite con setOnFocusChangeListener. ¿Tengo que establecer un onFocusChangeListener en cada uno individualmente, o hay algún tipo de catch-all? (getActivity (). findViewByID porque esto es un fragmento)
final TextView txtName = (TextView)getActivity().findViewById(R.id.clientHeader);
final TextView txtCompany = (TextView)getActivity().findViewById(R.id.txtContactCompany);
final TextView txtPosition = (TextView)getActivity().findViewById(R.id.txtContactPosition);
txtName.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if(!hasFocus) {
saveThisItem(txtClientID.getText().toString(), "name", txtName.getText().toString());
}
}
});
txtCompany.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if(!hasFocus) {
saveThisItem(txtClientID.getText().toString(), "company", txtCompany.getText().toString());
}
}
});
txtPosition.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if(!hasFocus) {
saveThisItem(txtClientID.getText().toString(), "position", txtPosition.getText().toString());
}
}
});
Al igual que ... ¿hay alguna forma de tener una ArrayList <EditText> de EditText Views, asignar un puntero (lo siento, no estoy seguro de cómo) a los editTexts existentes y configurar onFocusChangeListener para toda la lista de arrailistas? ¿O, incluso, iterar a través de ArrayList y configurar onFocusChangeListener para cada miembro?
¿O una forma de detectar CUALQUIER evento onFocusChangeListener, y simplemente guardar todos los datos en la base de datos, independientemente de en qué EditText haya ocurrido el evento?