B
by_homer
Neues Mitglied
- 9
Hi
Ich hab nun fast mein Studium beendet... daher kann ich mir nun entlich einen lang ersehnten Wunsch erfüllen und die "Android-Entwicklung" lernen.
Nebst Webdesign (php, javaascript ect.) wäre dies ein ganz neuer Programmierbereich welches mein Entwicklerherz sehr anregen tut
Nun.. ohne eure hilfe kann ich jedoch nicht auskommen!!!
Folgende Situtation:
Hab mir ne Activity gebastellt, welche mir Daten aus einer MySQL Datenbank als "Liste" aufs Device bringt!
Diese Liste sollte folgende Funktion haben:
Angenommen es ist eine Liste von Tieren... Ich klicke auf ein ListItem "Hund" (onItemClickListener)
Folglich sollte sich eine Seite öffnen, die weitere Angaben von diesem Hund angibt (Alter, Farbe ect.) natürlich immer mit der selben Activity ausgegeben... damit diese Activity weis wo genau die Angaben zu genau diesem Hund sind, braucht es die "id" aus der MySQL Datenbank!!! Nur der "Name" allein reicht nicht, da es gleiche Einträge geben könnte. Also zwingend der Primärschlüssel aus der Datenbank.
Biis anhin konnte ich wie gesagt eine solche Liste aus der MySQL Datenbank auf mein AndroidApp anzeigen lassen. Auch ein "onItemClickListnener" hab ich eingebaut. Jedoch macht dieser momentan nur ein "Toast" auf welcher nochmals den Inhalt des ListItmes ausgibt...
Hauptproblem ist, wie ich meiner Liste die "Datenbank-ID" mitgeben kann, ohne diese Anzugeben (sichtbar) damit dieser ID beim "OnClick"-Event mit geht in die neue Activity!!!
Zur Zeit wird die ID zusammen mit dem Namen als String in die Liste geschrieben!!
Hier der Code:
nochmals zusammengefasst:
Ich muss wissen wie ich diesen Code so schreibe, dass kein Toast sondern eine neue Activity gestartet wird bei "onClick"
Wie kann ich die ID "unsichtbar" in die neue Activity mitgeben, damit dort die Datenbankabfrage auf das Ausgewählte ListItem realisierbar wird!
Bitte um Hilfestellung... besten Danke
gruss by_homer
ps: es handelt sich um keine Tiere mein Vorhaben ist einiges Komplizierter... daher würde es nur verwirrung stifften!!!
Ich hab nun fast mein Studium beendet... daher kann ich mir nun entlich einen lang ersehnten Wunsch erfüllen und die "Android-Entwicklung" lernen.
Nebst Webdesign (php, javaascript ect.) wäre dies ein ganz neuer Programmierbereich welches mein Entwicklerherz sehr anregen tut
Nun.. ohne eure hilfe kann ich jedoch nicht auskommen!!!
Folgende Situtation:
Hab mir ne Activity gebastellt, welche mir Daten aus einer MySQL Datenbank als "Liste" aufs Device bringt!
Diese Liste sollte folgende Funktion haben:
Angenommen es ist eine Liste von Tieren... Ich klicke auf ein ListItem "Hund" (onItemClickListener)
Folglich sollte sich eine Seite öffnen, die weitere Angaben von diesem Hund angibt (Alter, Farbe ect.) natürlich immer mit der selben Activity ausgegeben... damit diese Activity weis wo genau die Angaben zu genau diesem Hund sind, braucht es die "id" aus der MySQL Datenbank!!! Nur der "Name" allein reicht nicht, da es gleiche Einträge geben könnte. Also zwingend der Primärschlüssel aus der Datenbank.
Biis anhin konnte ich wie gesagt eine solche Liste aus der MySQL Datenbank auf mein AndroidApp anzeigen lassen. Auch ein "onItemClickListnener" hab ich eingebaut. Jedoch macht dieser momentan nur ein "Toast" auf welcher nochmals den Inhalt des ListItmes ausgibt...
Hauptproblem ist, wie ich meiner Liste die "Datenbank-ID" mitgeben kann, ohne diese Anzugeben (sichtbar) damit dieser ID beim "OnClick"-Event mit geht in die neue Activity!!!
Zur Zeit wird die ID zusammen mit dem Namen als String in die Liste geschrieben!!
Hier der Code:
Code:
[B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055][LEFT]public[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]class[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] Tiere [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]extends[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] ListActivity {
InputStream [/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]is[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2];
ArrayList<String> [/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]results[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] = [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] ArrayList<String>();
JSONObject [/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]json_data[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2];
[/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]public[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]void[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] onCreate(Bundle savedInstanceState) {
[/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]super[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2].onCreate(savedInstanceState);
getData();
}
[/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]public[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]void[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] getData() {
String result = [/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]""[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2];
ArrayList<NameValuePair> nameValuePairs = [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] ArrayList<NameValuePair>();
[/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]try[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]{
HttpClient httpclient = [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] DefaultHttpClient();
HttpPost httppost = [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] HttpPost([/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"meineurl.de/httppost.php"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]);
httppost.setEntity([/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
[/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]is[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] = entity.getContent();
}
[/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]catch[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2](Exception e){Log.[I]e[/I]([/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"log_tag"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2], [/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"Fehler bei der http Verbindung "[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]+e.toString());}
[/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]try[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]{
BufferedReader reader = [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] BufferedReader([/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] InputStreamReader([/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]is[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2],[/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"iso-8859-1"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]),8);
StringBuilder sb = [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] StringBuilder();
String line = [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]null[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2];
[/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]while[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] ((line = reader.readLine()) != [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]null[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]) {
sb.append(line + [/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"n"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]);
}
[/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]is[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2].close();
result=sb.toString();
}
[/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]catch[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2](Exception e){Log.[I]e[/I]([/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"log_tag"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2], [/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"Error converting result "[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]+e.toString());}
[/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]try[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]{
JSONArray jArray = [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] JSONArray(result);
[/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]for[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]([/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]int[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] i=0;i<jArray.length();i++){
[/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]json_data[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] = jArray.getJSONObject(i);
[/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]results[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2].add((String) [/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]json_data[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2].get([/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"id"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]) + [/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]" "[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]+ [/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]json_data[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2].get([/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"name"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]));
fillList();
}
}
[/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]catch[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2](JSONException e){Log.[I]e[/I]([/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"log_tag"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2], [/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"Error parsing data "[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]+e.toString());}
}
[/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]public[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]void[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] fillList() {
[/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]this[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2].setListAdapter([/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] ArrayAdapter<String>([/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]this[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2], android.R.layout.[/SIZE][I][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]simple_list_item_1[/I][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2], [/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]results[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]));
ListView lv = getListView();
lv.setOnItemClickListener([/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] OnItemClickListener() {
[/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]public[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]void[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] onItemClick(AdapterView<?> parent, View view,
[/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]int[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] position, [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]long[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] id) {
[/SIZE][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]// When clicked, show a toast with the TextView text [/LEFT]
[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][LEFT]Toast.[I]makeText[/I](getApplicationContext(), ((TextView) view).getText(),
Toast.[/SIZE][I][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]LENGTH_SHORT[/I][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]).show();
}
});
}[/LEFT]
[/SIZE]
nochmals zusammengefasst:
Ich muss wissen wie ich diesen Code so schreibe, dass kein Toast sondern eine neue Activity gestartet wird bei "onClick"
Wie kann ich die ID "unsichtbar" in die neue Activity mitgeben, damit dort die Datenbankabfrage auf das Ausgewählte ListItem realisierbar wird!
Bitte um Hilfestellung... besten Danke
gruss by_homer
ps: es handelt sich um keine Tiere mein Vorhaben ist einiges Komplizierter... daher würde es nur verwirrung stifften!!!
Zuletzt bearbeitet: