Hallo Zusammen,
ich bin im Grunde noch Anfänger und habe daher ein Problem, dass vermutlich keines ist!
Denoch mein Versuch:
Ich ziehe mir Daten aus einer Tabelle meiner Datenbank, dabei ziehe ich parallel zur Bezeichnung eines Items (Gebäude) auch den Identifikator, da die Auswahl im zweiten Schritt dazu dient einen verknüpften Datensatz zu erstellen.
Es scheint so, als würde er jedoch den String Array (spinnerArray) nicht befüllen, da wenn dieser übergeben wird der Spinner leer bleibt. Nachfolgend mein Code:
ich bin im Grunde noch Anfänger und habe daher ein Problem, dass vermutlich keines ist!
Denoch mein Versuch:
Ich ziehe mir Daten aus einer Tabelle meiner Datenbank, dabei ziehe ich parallel zur Bezeichnung eines Items (Gebäude) auch den Identifikator, da die Auswahl im zweiten Schritt dazu dient einen verknüpften Datensatz zu erstellen.
Es scheint so, als würde er jedoch den String Array (spinnerArray) nicht befüllen, da wenn dieser übergeben wird der Spinner leer bleibt. Nachfolgend mein Code:
Java:
String query_gebaeude;
query_gebaeude = "SELECT DISTINCT geb_id, geb_bez FROM v_app_ls_anz WHERE ls_nr like '" + app.getAnlAnlLiegenschaft() + "' ORDER BY geb_bez";
try {
con = connectionclass(app.getUn(), app.getPass(), app.getDb(), app.getIp()); // Connect to database
if (con == null) {
z = "Prüfe deine Internetverbindung!";
}
else {
isSuccess=true;
stat = con.prepareStatement(query_gebaeude);
ResultSet rs = stat.executeQuery();
Map<Integer,String> myMap = new HashMap<>();
String[] spinnerArray = new String[0];
while (rs.next()) {
for(int i = 0; i < spinnerArray.length; i++) {
myMap.put(i, rs.getString(1));
spinnerArray[i] = rs.getString(2);
}
}
app.setAnlAnlGebaeudeSpinnerID((HashMap<Integer, String>) myMap);
app.setAnlAnlGebaeudeSpinner(spinnerArray);
}
} catch (SQLException e) {
e.printStackTrace();
}
Java:
final Spinner spinner = (Spinner) rootView.findViewById(R.id.geb_auswaehlen);
final Map<Integer,String> myMap = ((MyApplication) getActivity().getApplication()).getAnlAnlGebaeudeSpinnerID();
String[] spinnerArray = ((MyApplication) getActivity().getApplication()).getAnlAnlGebaeudeSpinner();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_spinner_item, spinnerArray);
adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
Boolean isSuccess = false;
// adapter.add("Gebäude auswählen...");
spinner.setAdapter(adapter);
spinner.setSelection(adapter.getCount());
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
MyApplication app = ((MyApplication) getActivity().getApplication());
String anl_gebaeude = (String) parent.getItemAtPosition(position);
app.setAnlAnlGebaeude2(anl_gebaeude);
String geb_bez = spinner.getSelectedItem().toString();
String geb_id = myMap.get(spinner.getSelectedItemPosition());
if(geb_id == null){
Toast.makeText(getActivity(), "Keine ID übergeben!", Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(getActivity(), geb_id, Toast.LENGTH_LONG).show();
// app.setAnlGebaeudeID(geb_id);
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});