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?

Respuestas a la pregunta(4)

Su respuesta a la pregunta