- Forum-Beiträge: 17
13.01.2013, 13:33:22 via Website
13.01.2013 13:33:22 via Website
Das (meines erachtens) relevante im Code ist das hier :
2 fillList();
3
4
5 }
6 public void run() {
7 getData();
8 }
9
10 public void getData() {
11// Hole JSON Object und schreibe in ein List<Meal>
12 {
Aber ich weiß einfach keine bessere Lösung, bitte um Hilfe!
Hier ist mein kompletter Quellcode der Datei :
2
3import java.io.BufferedReader;
4import java.io.InputStream;
5import java.io.InputStreamReader;
6import java.util.ArrayList;
7import java.util.Calendar;
8import java.util.GregorianCalendar;
9
10import org.apache.http.HttpEntity;
11import org.apache.http.HttpResponse;
12import org.apache.http.NameValuePair;
13import org.apache.http.client.HttpClient;
14import org.apache.http.client.entity.UrlEncodedFormEntity;
15import org.apache.http.client.methods.HttpPost;
16import org.apache.http.client.params.ClientPNames;
17import org.apache.http.client.params.CookiePolicy;
18import org.apache.http.impl.client.DefaultHttpClient;
19import org.json.JSONArray;
20import org.json.JSONException;
21import org.json.JSONObject;
22
23import android.app.Activity;
24import android.app.ListActivity;
25import android.content.Intent;
26import android.os.Bundle;
27import android.util.Log;
28import android.view.Menu;
29import android.view.View;
30import android.widget.AdapterView;
31import android.widget.AdapterView.OnItemClickListener;
32import android.widget.ArrayAdapter;
33import android.widget.ListView;
34
35public class MealDatabaseActivity extends ListActivity implements Runnable{
36
37 InputStream is;
38 ArrayList<Meal> meals = new ArrayList<Meal>();
39 JSONObject json_data;
40 GregorianCalendar cal = new GregorianCalendar();
41 Thread th=new Thread(this);
42
43 @Override
44 public void onCreate(Bundle savedInstanceState)
45 {
46 super.onCreate(savedInstanceState);
47 cal.add( Calendar.DATE, 0 );
48
49 th.start();
50 fillList();
51
52
53 }
54 public void run() {
55 getData();
56 }
57
58 public void getData()
59 {
60 Log.d("error","einmal aufgerufen");
61 String result = "";
62 ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
63
64 try{
65 HttpClient httpclient = new DefaultHttpClient();
66 //Falls der Server Cookies setzen will.
67 httpclient.getParams().setParameter(ClientPNames.COOKIE_POLICY,
68 CookiePolicy.NETSCAPE);
69 httpclient.getParams().setParameter("http.protocol.single-cookie-header", true);
70 HttpPost httppost = new HttpPost("XXX");// Der Link
71 httppost.getParams().setParameter(
72 ClientPNames.COOKIE_POLICY, CookiePolicy.NETSCAPE);
73
74 httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
75 HttpResponse response = httpclient.execute(httppost);
76 HttpEntity entity = response.getEntity();
77 is = entity.getContent();
78 }catch(Exception e){
79 Log.e("log_tag", "Fehler bei der http Verbindung "+e.toString());
80 }
81
82 try{
83 BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
84 StringBuilder sb = new StringBuilder();
85 String line = null;
86 while ((line = reader.readLine()) != null) {
87 sb.append(line + "n");
88 }
89 is.close();
90 result=sb.toString();
91 }catch(Exception e){
92 Log.e("log_tag", "Error converting result "+e.toString());
93 }
94
95 try{
96 JSONArray jArray = new JSONArray(result);
97 for(int i=0;i<jArray.length();i++){
98 json_data = jArray.getJSONObject(i);
99 Meal meal =new Meal();
100 meal.setId(json_data.getInt("id"));
101 meal.setName(json_data.getString("name"));
102 meal.setKh(json_data.getDouble("kohlenhydrate"));
103 meal.setProtein(json_data.getDouble("protein"));
104 meal.setFett(json_data.getDouble("fett"));
105 meal.setKcal(json_data.getDouble("kcal"));
106 meals.add(meal);
107
108 }
109
110
111 }
112 catch(JSONException e){
113 Log.e("log_tag", "Error parsing data "+e.toString());
114 }
115 }
116
117 public void fillList() {
118 Log.d("error","FILLIST");
119
120 this.setListAdapter(new ArrayAdapter<Meal>(this, android.R.layout.simple_list_item_1, meals));
121 }
122
123 @Override
124 public void onListItemClick(ListView l, View v, int position, long id) {
125
126 Log.d("error","MEAL NAME :"+meals.get(position).name);
127 Intent intent = new Intent(MealDatabaseActivity.this, AddMealActivity.class);
128 Meal meal= meals.get(position);
129 meal.setDay(cal.getTime().getDate());
130 meal.setMonth(cal.getTime().getMonth()+1);
131 meal.setYear(Calendar.getInstance().get(Calendar.YEAR));
132 meal.setHour(cal.getTime().getHours());
133 meal.setMinute(cal.getTime().getMinutes());
134 intent.putExtra("duwag", meal);
135 startActivity(intent);
136 }
137
138 @Override
139 public boolean onCreateOptionsMenu(Menu menu) {
140 super.onCreateOptionsMenu(menu);
141 getMenuInflater().inflate(R.menu.activity_main, menu);
142 menu.findItem(R.id.help_menu_item).setIntent(new Intent(this, HelpActivity.class));
143 menu.findItem(R.id.settings_menu_item).setIntent(new Intent(this, SettingsActivity.class));
144 return true;
145 }
146
147
148
149
150}
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.