2016-10-23 2 views
-1

Ich habe meinen Kopf gegen die Wand geschlagen und versucht, eine dynamisch anklickbare Schaltfläche zu erhalten, um entweder eine neue Absicht/ein neues Fragment basierend auf dem ausgewählten ListView-Element zu öffnen. Ich habe versagt, schlecht :-).JSON ListView und Clickable

Ich habe die Absicht, zu öffnen, aber es gibt einen Nullwert zurück, der wahrscheinlich bedeutet, dass ich die Absicht nicht öffne, die dem tatsächlichen ListView-Element zugeordnet werden würde. Könnte mich bitte jemand darauf hinweisen, wo ich falsch liege?

**** EDIT ****

Da niemand mich dazu beigetragen hat, werde ich es anders formulieren. Im Wesentlichen verwende ich die Volley-Klasse mit ListView, die von einem Webserver (json) geparst wird. Von dort versuche ich festzustellen, dass, wenn der Benutzer auf den Eintrag in der ListView klickt, die aufkommt, öffnet es seinen eigenen einzigartigen Bildschirm. Ich versuche mit 1.000 Absichten herumzukommen, also dachte ich darüber nach, einen Teil der Suche nach der neuen Absicht zu analysieren, die dann die json-Datenbank nach einer Übereinstimmung abfragen wird. Ist das ein effizienter Weg?

Wenn nicht, gibt es einen besseren Weg?

Ist dies der beste Weg, (was ich bezweifle), habe ich ein Stück Code, unter dem ich mit Problemen bin:

Musik Frag:

Song clickedObject = (Song)adapter.getItem(position); 
    Intent intent = new Intent(getActivity(), songIntent.class); 
    intent.putExtra("passTitle", clickedObject.getTitle()); 
    Log.e(clickedObject.getTitle(), "Passing: "); 
    startActivity(intent); 

Die Absicht öffnet in Ordnung und es der Wert sieht aus wie ist vergangen, aber die Schleife ist, was ich Probleme habe mit, wenn ich den String zu vergleichen, was ich versuche, ist ein json Lookup-Wert:

Intent

for (int i = 0; i < response.length(); i++) { 
     try { 
       JSONObject obj = response.getJSONObject(i); 
       Song song = new Song(); 
       song.setTitle(obj.getString("title")); 
       Song parseTitle = new Song(); 
       parseTitle.getTitle(jsonObject); 

Leider komme ich nicht weiter, da ich das String-Objekt nicht mit dem vergleichen kann, was in 'song.setTitle (obj.getString ("title"));' Teil des Codes. Kann jemand helfen?

Vielen Dank

+1

willkommen in SO. Bitte fügen Sie nur den relevanten Teil des Codes hinzu, es ist schwer für jeden, all Ihre Sachen durchzulesen. – Opiatefuchs

+0

fügen Sie bitte den vollständigen Code dieser for-Schleife hinzu – xFighter

Antwort

0

Ich schaffte es, eine Antwort dafür zu sortieren. Ich übergab den Click-Wert an die Intention und führte eine Variation der Volley-Methode (JsonArrayRequest) durch, um die JSON-Textdatei, die ich hatte, zu durchlaufen. Ich habe diesen Wert mit dem übergebenen verglichen und es funktioniert.

Wahrscheinlich nicht die beste Lösung, aber wenn man bedenkt, dass niemand viel Beratung angeboten hat, gehe ich mit diesem für jetzt.