Ich habe mehrere EditText-Felder, die ich mit setOnFocusChangeListener in der SQLiteDatabase speichern möchte. Muss ich einen onFocusChangeListener für jeden einzeln einstellen, oder gibt es einen Catch-all? (GetActivity(). FindViewById denn dies ist ein Fragment)EditText setOnFocusChangeListener für alle EditTexts
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());
}
}
});
Wie ... ist es eine Möglichkeit, eine Arraylist haben < EditText> von EditText Ansichten, weist einen Zeiger (sorry, nicht sicher, wie) an den existierende editTexts und setzen den onFocusChangeListener auf die ganze arraylist? Oder sogar, durchlaufen Sie die ArrayList und setzen Sie den onFocusChangeListener auf jedes Mitglied?
Oder eine Möglichkeit, alle ONFocusChangeListener-Ereignisse zu erkennen, und nur alle Daten in der Datenbank zu speichern, unabhängig davon, was für EditText sogar auf?
Das ist eigentlich die Methode, die ich verwenden werde; und glücklicherweise können Fragmente auch OnFocusChangedListener implementieren! Letztendlich weniger Code. –
Ist es nicht OnFocusChangeListener anstelle von OnFocusChange-d-Listener? (Bindestriche hinzugefügt für die Klarheit.) Offensichtlich keine große Sache, aber es dauerte noch eine Minute, um herauszufinden. – Kirk
Ich kämpfe mit diesem, SetOnFocusChangeListener ist eine anonyme innere Klasse übergeben, wie soll ich diesen Teil ändern, um die ganze Sache arbeiten zu lassen? – k2ibegin