Liste einer Listactivity mit einem "onClick" versehen

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:

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:
sorry ich möchte dir nicht zu nahe treten, als jemand der sein studium fast beendet hat, sollte man schon google nutzen können.

es gibt zirka 10000 threads zu genau diesen beginner fragen.
 
Oo

mit sollch einer Antwort hab ich nicht gerechnet...


Dies ist nicht meine erste Programmiersprache die ich erlerne! Ich hab also bereits mit google viel erfahrung!!!


Ich möchte dier auch nicht zu nahe tretten... aber bitte zeig mir einen Link, den du über google gefunden hast, welcher zu meiner Frage eine Antwort bereit hällt!!!

Bin ich gespannt... denn gestern hab ich ca. 1-2 h gesucht!


gruss by_homer
 
ich hab es hingekrigt, dass eine neue Activity beim "drauf Clicken" gestartet wird! (google :) )

folgenden Code mit dem "Toast"-Code ersetzt:

Code:
[SIZE=2]
[LEFT]Intent intent = [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] Intent(Tiere.[/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]this[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2], DetailTiere.[/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]class[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]);[/LEFT]
startActivity(intent);
[/SIZE]


Könnte mir nun jemand bitte sagen, wie ich den "id Wert" der Activity mitgeben kann?

Bitte

gruss by_homer
 
Einfach mittels folgender Methode:

Code:
protected void onListItemClick(ListView l, View v, int position, long [B][COLOR="Red"]id[/COLOR][/B]) {
  		
  		
  		Intent intent = 
                new Intent(Tiere.this, DetailTiere.class);
                intent.putExtra("id", [B][COLOR="red"]id[/COLOR][/B]);
                startActivity(intent);
  		
      }
 
  • Danke
Reaktionen: by_homer
by_homer schrieb:
Oo

mit sollch einer Antwort hab ich nicht gerechnet...


Dies ist nicht meine erste Programmiersprache die ich erlerne! Ich hab also bereits mit google viel erfahrung!!!


Ich möchte dier auch nicht zu nahe tretten... aber bitte zeig mir einen Link, den du über google gefunden hast, welcher zu meiner Frage eine Antwort bereit hällt!!!

Bin ich gespannt... denn gestern hab ich ca. 1-2 h gesucht!


gruss by_homer

android activity starten - Google-Suche

hier hast du zig links die dir zeigen, wie man eine neue activity startet

developer.android.com da gibts zig tutorials die sämtliche anfängerfrage abdecken.
 
Danke!!!

Ich konnte nun die gesammte Funktion implementieren...

jedoch nicht auf die Art und weise wie es sein sollte :)

Im Moment wird auf der neuen Activity (nach Click auf LitsItem) der Inhalt des ListItems geschrieben!

Code für die Listen-erstellung (incl. putExtra())

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]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) { 
String putextra = (String) ((TextView) view).getText();
Intent intent = [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] Intent(Tiere.[/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]this[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2], DetailTiere.[/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]class[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]);
intent.putExtra([/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"result"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2], putextra);
startActivity(intent);
} 
}); 

[/LEFT]
}
[/SIZE]


und der Code für die Ausgabe in einem TextView auf der Activity "DetailTiere"

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] DetailTiere [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]extends[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] Activity {

[/SIZE][SIZE=2][COLOR=#646464][SIZE=2][COLOR=#646464]@Override[/LEFT]
[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][LEFT][/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]protected[/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][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]// [/COLOR][/SIZE][/COLOR][/SIZE][B][SIZE=2][COLOR=#7f9fbf][SIZE=2][COLOR=#7f9fbf]TODO[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f] Auto-generated method stub[/LEFT]
[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][LEFT][/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]super[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2].onCreate(savedInstanceState);
setContentView(R.layout.[/SIZE][I][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]citys[/I][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]);
}

[/SIZE][SIZE=2][COLOR=#646464][SIZE=2][COLOR=#646464]@Override[/LEFT]
[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][LEFT][/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]protected[/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] onResume() { 
[/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]super[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2].onResume();

Bundle extra = getIntent().getExtras();
String ext = extra.getString([/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"result"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]);

TextView tv = (TextView) findViewById(R.id.[/SIZE][I][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]tx_test[/I][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]);
tv.setText([/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"Hi, "[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] + ext + [/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"!"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]);
}
[/LEFT]
}
[/SIZE]


So weit so gut....

jedoch sollte über das "putExtra" ja die Datenbank-ID übergeben werden!!!

Im Moment wird die "ID" zusammen mit dem "Namen" in ein String geschrieben und in der Liste ausgegeben.

Jedoch sollte die ID nicht sichtbar sein und trotzdem bei jedem ListItem dran gehefftet bleiben, damit ich dann diese ID beim "onClick"-Evetn in das "putExtra" schreiben kann!


Ich nehme mal an, dass ich beim schreiben der "Liste" den einzelnen Items irgendwie ein "Wert" geben kann (z.b "key") der unsichtbar ist, aber trotdem da ist... diesen könnte ich dann irgendwie ins "putExtra" reinschreiben!!!

(nur reine Annahme...

ich hab wirkllich keinen Plan wie ich dies umsetzen könnte!!!

gruss by_homer
 
du musst aus deinem adapter das object der stelle position nehmen und von dem die id holen.

wie deine objekte in results aussehen kann ich leider nicht wissen, vermute mal dort gibt es ein member id

ansonsten schreib dir einen custom adapter und dann bekommst die richtige id schon als parameter in onItemClick mit
 
Könntest du mir bitte ein klein wenig mehr geben? damit ich auch gezielt weiter nachforschen kann!!!

Ich habs wirklich versucht... aber mit den von dier erhalltenen Informationen ist das Suchergebnis etwas zu gross.

Ein bischen Code, den ich vergleichen kann wäre .b gut ;)

Danke

gruss by_homer
 
Also ich befürchte, dass ich grundsätzlich was falsch mache!!!

Angenommen jemand löscht ein Tier aus der Datenbank, welches die ID (in der MySQL DB) "3" hatte.

Jetzt wird die Liste gefüllt und nach dem dritten LitenItem (MySQl ID = "2") bekommt das vierte ListenItem eine ID (auf android) logischerweise von "3"... da aber die MySQL-ID "3" gelöscht ist, hat dieser Eintrag auf dem Server eine ID von "4"!!!

Demnach muss ich zwingend die ID des Servers über "putExtra" übergeben!!!

Wäre wirklich dankbar für entsprechende Hilfe!!!

Ich danke allen die bis anhin geholfen haben und auch denne die kurz rein geschaut haben!!!

gruss by_homer
 
Habs rausgekrigt... musste zwar meinen gesammten Code neu schreiben, aber nun funktioniert es!!!

Danke für die Hilfe...

werde dann wenn ich komplett fertig bin ein kleines HowTo schreiben...

damit sich der Kreis wider schliesst ;)

gruss by_homer
 
na geht doch :D
 
;)

rausgekrigt hab ichs, indem ich mir SQLLite Anleitungen und Code genauer angeschaut hab! denn davon gibt es tausend mal mehr als über MySQL Anleitungen...

gruss by_homer
 
weil android mit sqllite arbeitet und nicht mit mysql wahrscheinlich
 
Ja local auf dem Handy... aber wenn es übers netzwerk geht, ist my-sql die erste wahl! Jedoch wie gesagt... ab dem zeitpunkt wo die daten ins View geschrieben werden, ist das handeln genau gleich!

;)

Gesendet mit der Android-Hilfe.de-App
 
naja die serverseite hat ja auch rein gar nichts mehr mit android zu tun.

da bist bei php tutorials besser aufgehoben.
 
Stimmt auch wider!

Glücklicherweise brauch ich dies nicht mehr zu tun...

Swordi kannst du mir bitte nen tipp geben zu meinem anderen thread?

Wäre echt klasse!

Gesendet mit der Android-Hilfe.de-App
 
Ich weiss nicht ob du nun noch Hilfe brauchst da dein Thread schon was älter ist.

Ich hatte ein ähnliches Problem.
Am einfachsten war die folgende Lösung
In deinem XML Layout das dein ListAdapter verwendet um die Liste darzustellen hast du ja sicherlich die Methode getView
nachdem du die Daten aus der Datenbank in die dafür vorgesehenen ViewElemente gepackt hast kannst du den View Elementen mit view.setID noch die ID der Zeile aus der Datenbank geben.

dann gibst du in deinem XML Layout mit dem attribut
android:onClick="deineOnClickMethode"
die Methode aus deiner zum Layout gehörenden Activity an die aufgerufen werden soll(Also in der Activity, in der die Liste ist).

Jedenfalls kannst du in der Methode bequem auf die ViewElemente zugreifen.

Beispiel:
XML:
Code:
<Button
        android:id="@+id/Buttonid"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="ButtonBeschriftung"
        android:onClick="deineOnClickMethode" 
    />
Zum Layout gehörende Activity in JAVA:
Code:
public void deineOnClickMethode(View view)
{
    Button button = (Button) view;
    int id = button.getId();
    final Intent intent = new Intent(this, DieKlasseDerActivityDieAufgerufenWerdenSoll.class);
    intent.putExtra("ID", id);//ID ist hier der Bezeichner den du dann zum abrufen brauchst und id die Variable mit dem Wert
    startActivity(intent);
}
Activity die aufgerufen wird:
Code:
final Bundle extras = getIntent().getExtras();
int id = extras.getInt(ZumLayoutgehörendeActivity.ID)
 
Oh....ich war per Google auf deinen Beitrag gekommen. Hab garnicht gesehen das er sich anscheinend schon erledigt hat....na gut...umsonst getippt
 

Ähnliche Themen

D
  • Data2006
Antworten
14
Aufrufe
483
jogimuc
J
A
Antworten
10
Aufrufe
1.016
swa00
swa00
B
Antworten
3
Aufrufe
1.299
swa00
swa00
Zurück
Oben Unten