1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Liste einer Listactivity mit einem "onClick" versehen

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von by_homer, 28.04.2011.

  1. by_homer, 28.04.2011 #1
    by_homer

    by_homer Threadstarter Neuer Benutzer

    Beiträge:
    24
    Erhaltene Danke:
    8
    Registriert seit:
    27.04.2010
    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: 28.04.2011
  2. swordi, 28.04.2011 #2
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    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.
     
  3. by_homer, 28.04.2011 #3
    by_homer

    by_homer Threadstarter Neuer Benutzer

    Beiträge:
    24
    Erhaltene Danke:
    8
    Registriert seit:
    27.04.2010
    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
     
  4. by_homer, 28.04.2011 #4
    by_homer

    by_homer Threadstarter Neuer Benutzer

    Beiträge:
    24
    Erhaltene Danke:
    8
    Registriert seit:
    27.04.2010
    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
     
  5. Gingerbread, 28.04.2011 #5
    Gingerbread

    Gingerbread Android-Hilfe.de Mitglied

    Beiträge:
    110
    Erhaltene Danke:
    6
    Registriert seit:
    21.01.2011
    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);
      		
          }
     
    by_homer bedankt sich.
  6. swordi, 28.04.2011 #6
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    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.
     
  7. by_homer, 28.04.2011 #7
    by_homer

    by_homer Threadstarter Neuer Benutzer

    Beiträge:
    24
    Erhaltene Danke:
    8
    Registriert seit:
    27.04.2010
    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
     
  8. swordi, 28.04.2011 #8
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    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
     
  9. by_homer, 28.04.2011 #9
    by_homer

    by_homer Threadstarter Neuer Benutzer

    Beiträge:
    24
    Erhaltene Danke:
    8
    Registriert seit:
    27.04.2010
    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
     
  10. by_homer, 28.04.2011 #10
    by_homer

    by_homer Threadstarter Neuer Benutzer

    Beiträge:
    24
    Erhaltene Danke:
    8
    Registriert seit:
    27.04.2010
    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
     
  11. by_homer, 29.04.2011 #11
    by_homer

    by_homer Threadstarter Neuer Benutzer

    Beiträge:
    24
    Erhaltene Danke:
    8
    Registriert seit:
    27.04.2010
    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
     
  12. swordi, 29.04.2011 #12
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    na geht doch :D
     
  13. by_homer, 29.04.2011 #13
    by_homer

    by_homer Threadstarter Neuer Benutzer

    Beiträge:
    24
    Erhaltene Danke:
    8
    Registriert seit:
    27.04.2010
    ;)

    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
     
  14. swordi, 30.04.2011 #14
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    weil android mit sqllite arbeitet und nicht mit mysql wahrscheinlich
     
  15. by_homer, 04.05.2011 #15
    by_homer

    by_homer Threadstarter Neuer Benutzer

    Beiträge:
    24
    Erhaltene Danke:
    8
    Registriert seit:
    27.04.2010
    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
     
  16. swordi, 04.05.2011 #16
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    naja die serverseite hat ja auch rein gar nichts mehr mit android zu tun.

    da bist bei php tutorials besser aufgehoben.
     
  17. by_homer, 04.05.2011 #17
    by_homer

    by_homer Threadstarter Neuer Benutzer

    Beiträge:
    24
    Erhaltene Danke:
    8
    Registriert seit:
    27.04.2010
    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
     
  18. Micka, 12.01.2012 #18
    Micka

    Micka Erfahrener Benutzer

    Beiträge:
    173
    Erhaltene Danke:
    1
    Registriert seit:
    30.12.2011
    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)
    
     
  19. Micka, 12.01.2012 #19
    Micka

    Micka Erfahrener Benutzer

    Beiträge:
    173
    Erhaltene Danke:
    1
    Registriert seit:
    30.12.2011
    Oh....ich war per Google auf deinen Beitrag gekommen. Hab garnicht gesehen das er sich anscheinend schon erledigt hat....na gut...umsonst getippt
     

Diese Seite empfehlen