ListView mit bestimmten Daten von json

  • Antworten:6
  • Bentwortet
Jaaaaakob
  • Forum-Beiträge: 21

13.11.2013, 19:30:58 via Website

Hallo Leute,

ich habe eine Frage, ich habe eine JSON datei siehe unten

und möchte daraus nur die ergebnisse in eine ListVIew des heutigen Tages, ich versuch das schon seit einer Woche jedoch komm ich nicht zur Lösung.

Danke im voraus!

Link
namnam.bytewerk.org/files/Studiwerk-Erlangen-Nuernberg-Mensa-Sued-Erlangen.json

— geändert am 13.11.2013, 19:31:31

Antworten
Carsten M.
  • Forum-Beiträge: 33.204

13.11.2013, 19:34:15 via App

Und Dein Problem sollen wir jetzt erraten?

Oder Dir die App schreiben?

Oder was genau ist Deine Intention?

Herzliche Grüße

Carsten

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

Antworten
Jaaaaakob
  • Forum-Beiträge: 21

13.11.2013, 19:38:02 via Website

nein nicht schreiben, vllt einen kleinen code schnipsel wie ich da hin komme


1package de.jakobhaubold.tools.unierlangentechfak;
2
3
4
5import java.util.ArrayList;
6import java.util.HashMap;
7
8import org.json.JSONArray;
9import org.json.JSONException;
10import org.json.JSONObject;
11
12import android.app.Activity;
13import android.app.ProgressDialog;
14import android.os.AsyncTask;
15import android.os.Bundle;
16import android.provider.MediaStore.Images;
17import android.view.View;
18import android.widget.AdapterView;
19import android.widget.Button;
20import android.widget.ListAdapter;
21import android.widget.ListView;
22import android.widget.SimpleAdapter;
23import android.widget.TextView;
24import android.widget.Toast;
25
26
27
28
29
30
31
32public class MensaActivity extends Activity {
33 ListView list;
34 TextView name;
35 TextView studPreis;
36 TextView normPreis;
37 Images token;
38 Button Btngetdata;
39 ArrayList<HashMap<String, String>> essenlist = new ArrayList<HashMap<String, String>>();
40
41 //URL to get JSON Array
42
43 private static String url = "URL"; // hier steht die URL
44
45
46
47 //JSON Node Names
48 private static final String TAG_NAME = "beschreibung";
49 private static final String TAG_SPREIS = "studentenPreis";
50 private static final String TAG_NPreis = "normalerPreis";
51 private static final String TAG_TOKEN = "tokens";
52 private static final String TAG_ESSEN = "Mensaessen";
53 private static final String TAG_TAG = "Mensa";
54
55
56 JSONArray android = null;
57
58
59
60
61 @Override
62 protected void onCreate(Bundle savedInstanceState) {
63 super.onCreate(savedInstanceState);
64
65 setContentView(R.layout.activity_mensa);
66 essenlist = new ArrayList<HashMap<String, String>>();
67 new JSONParse().execute();
68
69
70
71
72
73
74 }
75
76
77
78 private class JSONParse extends AsyncTask<String, String, JSONObject> {
79 private ProgressDialog pDialog;
80 @Override
81 protected void onPreExecute() {
82 super.onPreExecute();
83 normPreis = (TextView)findViewById(R.id.normPreis);
84 name = (TextView)findViewById(R.id.name);
85 studPreis = (TextView)findViewById(R.id.studPreis);
86 pDialog = new ProgressDialog(MensaActivity.this);
87 pDialog.setMessage("lade Daten ...");
88 pDialog.setIndeterminate(false);
89 pDialog.setCancelable(true);
90 pDialog.show();
91
92
93
94 }
95
96 @Override
97 protected JSONObject doInBackground(String... args) {
98
99 JSONParser jParser = new JSONParser();
100
101 // Getting JSON from URL
102 JSONObject json = jParser.getJSONFromUrl(url);
103 return json;
104 }
105 @Override
106 protected void onPostExecute(JSONObject json) {
107 pDialog.dismiss();
108 try {
109 // Getting JSON Array from URL
110 android = json.getJSONArray(TAG_TAG);
111 for(int i = 0; i < android.length(); i++){
112 JSONObject c = android.getJSONObject(i);
113
114 // Storing JSON item in a Variable
115 String name = c.getString(TAG_NAME);
116 String studPreis = c.getString(TAG_SPREIS);
117 String normPreis = c.getString(TAG_NPreis);
118
119
120
121
122 // Adding value HashMap key => value
123
124
125 HashMap<String, String> map = new HashMap<String, String>();
126
127 map.put(TAG_NAME, name);
128 map.put(TAG_SPREIS, studPreis);
129 map.put(TAG_NPreis, normPreis);
130
131 essenlist.add(map);
132 list=(ListView)findViewById(R.id.list);
133
134
135
136
137
138 ListAdapter adapter = new SimpleAdapter(MensaActivity.this, essenlist,
139 R.layout.mensalist,
140 new String[] { TAG_NAME,TAG_SPREIS, TAG_NPreis }, new int[] {
141 R.id.name,R.id.studPreis, R.id.normPreis});
142
143 list.setAdapter(adapter);
144 list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
145
146 @Override
147 public void onItemClick(AdapterView<?> parent, View view,
148 int position, long id) {
149 Toast.makeText(MensaActivity.this, "You Clicked at "+essenlist.get(+position).get("name"), Toast.LENGTH_SHORT).show();
150
151 }
152 });
153
154 }
155 } catch (JSONException e) {
156 e.printStackTrace();
157 }
158
159
160 }
161 }
162
163}

Antworten
impjor
  • Forum-Beiträge: 1.793

13.11.2013, 19:51:35 via App

Wo liegt dein Problem? Wo zeigt eclipse einen Fehler? Stürzt die App ab? Dann LogCat zeigen!
Kannst du die Datei herunterladen? Kannst du sie parsen?

Bitte stelle eine konkrete Frage!

LG

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten
Jaaaaakob
  • Forum-Beiträge: 21

13.11.2013, 19:57:04 via Website

11-13 13:48:52.393: W/System.err(1691): org.json.JSONException: Value {"lastDate":"2013-12-04","Tagesmenue":[{"Mensaessen":[{"studentenPreis":224,"normalerPreis":324,"tokens":"S","beschreibung":"Zwei Thüringer Bratwürste "},{"studentenPreis":299,"normalerPreis":399,"tokens":"R","beschreibung":"Kalbsgulasch in \"Jäger Art\" mit Waldpilzen"},{"studentenPreis":156,"normalerPreis":256,"tokens":"..\/pics\/vegan-logo.png","beschreibung":"Vegane Woche"}],"tag":"2013-11-11"},{"Mensaessen":[{"studentenPreis":166,"normalerPreis":266,"tokens":"S","beschreibung":"Maultaschen mit Hackfleischfüllung auf Ratatouillegemüse"},{"studentenPreis":259,"normalerPreis":359,"tokens":"G","beschreibung":"Putenschnitzel mit Rahmsoße"},{"studentenPreis":218,"normalerPreis":318,"tokens":"..\/pics\/vegan-logo.png","beschreibung":"Vegane Woche"}],"tag":"2013-11-12"},{"Mensaessen":[{"studentenPreis":265,"normalerPreis":365,"tokens":"S","beschreibung":"Schweine Cordon Bleu "},{"studentenPreis":222,"normalerPreis":322,"tokens":"G","beschreibung":"Putengeschnetzeltes mit exotischen Früchten in Curryrahm"},{"studentenPreis":175,"normalerPreis":275,"tokens":"..\/pics\/vegan-logo.png","beschreibung":"Vegane Woche"}],"tag":"2013-11-13"},{"Mensaessen":[{"studentenPreis":294,"normalerPreis":394,"tokens":"..\/pics\/vegan-logo.png","beschreibung":"Vegane Woche"},{"studentenPreis":199,"normalerPreis":299,"tokens":"S","beschreibung":"Schweinebraten mit Kümmelsoße"},{"studentenPreis":199,"normalerPreis":299,"tokens":"G","beschreibung":"Pasta mit Geflügelbolognese"}],"tag":"2013-11-14"},{"Mensaessen":[{"studentenPreis":319,"normalerPreis":419,"tokens":"F","beschreibung":"Seelachsfilet im Kartoffelmantel mit Spinatkartoffeln"},{"studentenPreis":179,"normalerPreis":279,"tokens":"S","beschreibung":"Rahmgeschnetzeltes vom Schwein"},{"studentenPreis":175,"normalerPreis":275,"tokens":"V","beschreibung":"Grießbrei mit Kirschkompott und Zimt-Zucker"},{"studentenPreis":224,"normalerPreis":324,"tokens":"..\/pics\/vegan-logo.png","beschreibung":"Vegane Woche"}],"tag":"2013-11-15"},{"Mensaessen":[{"studentenPreis":199,"normalerPreis":299,"tokens":"G","beschreibung":"Gnocchi mit Rucola, Putensalami und geriebenem Mozzarella"},{"studentenPreis":198,"normalerPreis":298,"tokens":"S","beschreibung":"Schweineschnitzel gebacken \"Wiener Art\" mit Zitrone "},{"studentenPreis":219,"normalerPreis":319,"tokens":"V","beschreibung":"Gemüseauflauf "},{"studentenPreis":268,"normalerPreis":368,"tokens":"G","beschreibung":"Campus Cooking"}],"tag":"2013-11-18"},{"Mensaessen":[{"studentenPreis":185,"normalerPreis":285,"tokens":"F","beschreibung":"Penne mit Lachs-Brokkoli-Dillsahne"},{"studentenPreis":217,"normalerPreis":317,"tokens":"S","beschreibung":"Hirtenrolle auf Oliven-Peperoni-Soße"},{"studentenPreis":168,"normalerPreis":268,"tokens":"..\/pics\/vegan-logo.png","beschreibung":"Chinagemüse mit Kichererbsen in Curry-Kokossoße mit Reis"},{"studentenPreis":498,"normalerPreis":598,"tokens":"S","beschreibung":"Campus Cooking"}],"tag":"2013-11-19"},{"Mensaessen":[{"studentenPreis":285,"normalerPreis":385,"tokens":"R","beschreibung":"Rindergulasch \"Ungarische Art\" mit Nudeln"},{"studentenPreis":444,"normalerPreis":544,"tokens":"G","beschreibung":"Campus Cooking"},{"studentenPreis":179,"normalerPreis":279,"tokens":"V","beschreibung":"Käsespätzle mit Röstzwiebeln"}],"tag":"2013-11-20"},{"Mensaessen":[{"studentenPreis":249,"normalerPreis":349,"tokens":"R","beschreibung":"Lasagne Bolognese "},{"studentenPreis":299,"normalerPreis":399,"tokens":"S","beschreibung":"Fränkisches Schäuferle mit Bratensoße"},{"studentenPreis":196,"normalerPreis":296,"tokens":"V","beschreibung":"Campus Cooking"}],"tag":"2013-11-21"},{"Mensaessen":[{"studentenPreis":192,"normalerPreis":292,"tokens":"R","beschreibung":"Chili con carne mit Cajunreis"},{"studentenPreis":227,"normalerPreis":327,"tokens":"F","beschreibung":"Hokifilet \"Müllerin Art\" mit Petersilienbutter und Mandeln"},{"studentenPreis":229,"normalerPreis":329,"tokens":"V","beschreibung":"Kartoffeltaschen g
11-13 13:48:52.393: W/System.err(1691): at org.json.JSON.typeMismatch(JSON.java:100)
11-13 13:48:52.403: W/System.err(1691): at org.json.JSONObject.getJSONArray(JSONObject.java:552)
11-13 13:48:52.403: W/System.err(1691): at de.jakobhaubold.tools.unierlangentechfak.MensaActivity$JSONParse.onPostExecute(MensaActivity.java:113)
11-13 13:48:52.403: W/System.err(1691): at de.jakobhaubold.tools.unierlangentechfak.MensaActivity$JSONParse.onPostExecute(MensaActivity.java:1)
11-13 13:48:52.403: W/System.err(1691): at android.os.AsyncTask.finish(AsyncTask.java:631)
11-13 13:48:52.403: W/System.err(1691): at android.os.AsyncTask.access$600(AsyncTask.java:177)
11-13 13:48:52.413: W/System.err(1691): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
11-13 13:48:52.413: W/System.err(1691): at android.os.Handler.dispatchMessage(Handler.java:99)
11-13 13:48:52.423: W/System.err(1691): at android.os.Looper.loop(Looper.java:137)
11-13 13:48:52.423: W/System.err(1691): at android.app.ActivityThread.main(ActivityThread.java:5103)
11-13 13:48:52.435: W/System.err(1691): at java.lang.reflect.Method.invokeNative(Native Method)
11-13 13:48:52.435: W/System.err(1691): at java.lang.reflect.Method.invoke(Method.java:525)
11-13 13:48:52.435: W/System.err(1691): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
11-13 13:48:52.443: W/System.err(1691): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-13 13:48:52.454: W/System.err(1691): at dalvik.system.NativeStart.main(Native Method)

Antworten
Jaaaaakob
  • Forum-Beiträge: 21

13.11.2013, 19:57:41 via Website

meine frage ist wie ich jetzt an die teilobjekte in dem jsonobjekt komme

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

13.11.2013, 21:08:16 via App

Schau dir mal Json Parse tutorials an.
Wenn du den sinn und Zweck verstanden hast, dann kannst du das Beispiel aus dem tut abändern, wie du willst.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten