# Dynamische EditText View eingaben in Datenbank speichern



## sarbot (26. Sep 2014)

Hallo, ich bin recht neu im thema java/android habe aber bereits einwenig programmiererfahrung im allgemeinen.
Nun bei der ersten eigenen App stoß ich schon auf Hindernisse:
Ich verwende ein ListView mit dynamischem Content über einen erweiterten ArrayAdapter. Außerhalb der ListView liegt ein Button "save". Durch klicken des save-buttons sollen nun über eine schleife (mit hilfe des adapters(?!)) alle EditText felder eingelesen und in einer Datenbank gespeichert werden. Ich bin warscheinlich nicht der erste der so etwas vorhat habe aber in der suche nur onClickHandler gefunden, die sich auf das jeweilige Item beziehen. 

mein ArrayAdapter sieht so aus:

```
public class ArrayAdapterPractise extends ArrayAdapter<Practise> {

	private Context context;
	private List<Practise> practises;
	
	public ArrayAdapterPractise(Context context, List<Practise> practises) {
		super(context, R.layout.list_item_practise, practises);
		this.context = context;
		this.practises = practises;
	}
	
	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		
		LayoutInflater inflater = (LayoutInflater) context
		        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		View row = inflater.inflate(R.layout.list_item_practise, parent, false);
		
		TextView name = (TextView) row.findViewById(R.id.name_value);
		TextView id = (TextView) row.findViewById(R.id.id_value);
		EditText field1 = (EditText) row.findViewById(R.id.field1);
		
		name.setText(practises.get(position).getName());
		id.setText(practises.get(position).getId()+"");
		field1.setText(practises.get(position).getField1());
		return row;
	}
}
```

diesen hab ich auch in meiner MainActivity.java eingebunden:

```
public class MainActivity extends Activity {

	private ListView exampleListView;
	private List<Practise> practises = new ArrayList<Practise>();
	
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_mainactivity);
		
		fillPractises();
		
		exampleListView = (ListView) findViewById(R.id.exampleListView);
		
		ArrayAdapterPractise adapter = new ArrayAdapterPractise(this, practises);
		exampleListView.setAdapter(adapter);
	}
	
	public void fillPractises() {

		. . . . . // hier stehen schleifen die Practise objecte erstellen

	}
	
	public void save(View view){
		String out = practises.get(0).getField1();
		System.out.println(out);
	}
	

}
```

die save() function ist die, die beim klick auf den button alle eingabe felder in eine datenbank schreiben soll. 
Der erste schritt wäre zu wissen wie ich an den eingegebenen Inhalt der felder komme. der Array adapter scheint dies nicht direkt bei eingabe schon in die object variablen zu schreiben, zumindest gibt die obige ausgabe mir den default wert und nicht die nutzereingabe aus. 

Der nächste punkt wäre die Datenbank ich habe mir schon das developer tutorial durchgelesen allerdings scheint das nicht ganz so trivial zu sein (für einen anfänger). Kann ich meine bestehende ArrayAdapter klasse ebenfalls als adapter für die datenbank benutzen ? oder brauch ich eine weitere äquivalente ? Kann ich die objekte in einfacher ausführung vorliegen haben also die Practise klasse ? und einfach einen adapter zur datenbank und einen zur listview haben ? Die Funktionen des übertragens der daten in alle jeweiligen richtungen sind das problem denke ich.

Es wäre schön wenn ihr mir mit konkreten stichworten/codevorschlägen zur save() funktion helfen könnt oder prinzipell zur verwendung einer Adapter klasse.

Ganz Vielen Dank schonmal

sarbot


----------

