Fabian Simon
- Forum-Beiträge: 359
26.01.2016, 18:14:04 via Website
26.01.2016 18:14:04 via Website
Hallo,
habe ein Klasse geschrieben mit der Mann Schnell pflichtfelder definieren und diese auf inhalt prüfen lassen kann.
Ist sicher noch erweiterbar und man kann noch viel dran basteln.
Aber so denke ich sollte es leuten auch schonmal helfen.
package de.fasibio.sshoneclick.viewHelper;
import android.app.Activity;
import android.view.View;
import android.widget.EditText;
import java.util.ArrayList;
import java.util.List;
/**
* Created by fasibio on 23.01.2016.
*/
public class RequiredHelper {
/**
* eine Liste alle Felder die als Pflichfeld hinzugefuegt wurden
*/
private List<EditText> fields = new ArrayList<EditText>();
public EditText addRequiredField(EditText requiredfield){
requiredfield.setOnFocusChangeListener(new FocusChangeListener());
fields.add(requiredfield);
return requiredfield;
}
/**
* Liefert zureuck ob eins der Felder noch nicht ausgefuellt wurde
* @return
*/
public boolean hasFieldAnError(){
return hasFieldAnError(false);
}
/**
* Liefert zureuck ob Felder noch nicht ausgefuellt wurde
* @param showerrorText wenn true wird der String R.string.requirederror als error den einzelnen Feldern hinzugefuegt
*
* @return
*/
public boolean hasFieldAnError(boolean showerrorText){
boolean result = false;
for (EditText one : fields){
if (isFieldEmpty(one)){
result = true;
if (showerrorText){
one.setError(StaticObject.getResString(R.string.requirederror));
}else{
break;
}
}
}
return result;
}
private boolean isFieldEmpty(EditText field){
return field.getText().toString().trim().equals("");
}
private class FocusChangeListener implements View.OnFocusChangeListener{
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (v instanceof EditText){
EditText tmp = (EditText)v;
if (!tmp.hasFocus()){
if (isFieldEmpty(tmp)){
tmp.setError(StaticObject.getResString(R.string.requirederror));
}
}
}
}
}
}
Aufgerufen wir dann das ganze so:
requiredHelper = new RequiredHelper();
requiredHelper.addRequiredField(getEditText(R.id.edtname));
requiredHelper.addRequiredField(getEditText(R.id.edtport));
requiredHelper.addRequiredField(getEditText(R.id.edthost));
und für eine Überprüfung:
requiredHelper.hasFieldAnError(true)
oder
requiredHelper.hasFieldAnError()
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.