Ich habe eine MainActivity
1package de.Rocky.AppWunsch;
2
3import java.io.BufferedReader;
4import java.io.InputStream;
5import java.io.InputStreamReader;
6import java.util.ArrayList;
7
8import org.apache.http.HttpEntity;
9import org.apache.http.HttpResponse;
10import org.apache.http.NameValuePair;
11import org.apache.http.client.HttpClient;
12import org.apache.http.client.entity.UrlEncodedFormEntity;
13import org.apache.http.client.methods.HttpPost;
14import org.apache.http.impl.client.DefaultHttpClient;
15import org.json.JSONArray;
16import org.json.JSONException;
17import org.json.JSONObject;
18
19import android.app.ProgressDialog;
20import android.content.Intent;
21import android.graphics.Color;
22import android.os.Bundle;
23import android.os.Handler;
24import android.os.Message;
25import android.util.Log;
26import android.widget.ArrayAdapter;
27import android.widget.ListView;
28
29public class AppWunsch extends MenuActivityMain implements Runnable {
30 private ProgressDialog pd;
31 InputStream is;
32 ArrayList<String> results = new ArrayList<String>();
33 JSONObject json_data;
34
35 /** Called when the activity is first created. */
36 @Override
37 public void onCreate(Bundle savedInstanceState) {
38 super.onCreate(savedInstanceState);
39 setContentView(R.layout.main);
40 /*Intent service = new Intent(getBaseContext(), LocalService.class);
41 startService(service);*/
42 Changelog changelog = new Changelog(this);
43 changelog.showOnFirstRun();
44 getData();
45 }
46
47 private void getData() {
48 pd = ProgressDialog.show(this, "Laden...", "Hole Daten...", true, true);
49
50 Thread thread = new Thread(this);
51 thread.start();
52 }
53
54 public void run() {
55 String result = "";
56 ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
57
58 try {
59 HttpClient httpclient = new DefaultHttpClient();
60 HttpPost httppost = new HttpPost(
61 "url/zu/php/datei");
62 httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
63 HttpResponse response = httpclient.execute(httppost);
64 HttpEntity entity = response.getEntity();
65 is = entity.getContent();
66 } catch (Exception e) {
67 Log.e("log_tag", "Fehler in http-Connection " + e.toString(), e);
68 }
69
70 try {
71 BufferedReader reader = new BufferedReader(new InputStreamReader(
72 is, "iso-8859-1"), 8);
73 StringBuilder sb = new StringBuilder();
74 String line = null;
75 while ((line = reader.readLine()) != null) {
76 sb.append(line + "n");
77 }
78 is.close();
79 result = sb.toString();
80 } catch (Exception e) {
81 Log.e("log_tag", "Fehler bei Result-Konvertierung " + e.toString(),
82 e);
83 }
84
85 try {
86 JSONArray jArray = new JSONArray(result);
87 for (int i = 0; i < jArray.length(); i++) {
88 json_data = jArray.getJSONObject(i);
89 results.add((String) json_data.get("id") + " "
90 + json_data.get("title") + " "
91 + json_data.get("message") + " "
92 + json_data.get("rating"));
93 }
94 } catch (JSONException e) {
95 Log.e("log_tag", "Fehler beim Daten holen " + e.toString(), e);
96 }
97 handler.sendEmptyMessage(0);
98 }
99
100 private Handler handler = new Handler() {
101 @Override
102 public void handleMessage(Message msg) {
103 pd.dismiss();
104 filllist();
105 }
106 };
107
108 protected void filllist() {
109 try {
110 ListView lv = (ListView) findViewById(R.id.lv);
111 lv.setBackgroundColor(Color.LTGRAY);
112 lv.setCacheColorHint(Color.LTGRAY);
113 lv.setAdapter(new ArrayAdapter<String>(this,
114 android.R.layout.simple_list_item_1, results));
115 } catch (Exception e) {
116 Log.e("log_tag", "Fehler bei Erstellung der Filelist "
117 + e.toString(), e);
118 }
119 }
120}
Und eine MenuActivity
1package de.Rocky.AppWunsch;
2
3import android.app.Activity;
4import android.app.AlertDialog;
5import android.content.DialogInterface;
6import android.content.Intent;
7import android.view.Menu;
8import android.view.MenuItem;
9import android.widget.Toast;
10
11public class MenuActivityMain extends Activity {
12
13 // Menu Optionen
14 private static final int MENU_AKTUALISIEREN = 0;
15 private static final int MENU_EINTRAG = 1;
16 private static final int MENU_BEENDEN = 2;
17 private static final int MENU_PREF = 3;
18
19 // Beschriftungen der Menuoptionen
20 private static final String MENU_OPTION_AKTUALISIEREN = "Aktualisieren";
21 private static final String MENU_OPTION_EINTRAG = "Neuer Eintrag";
22 private static final String MENU_OPTION_BEENDEN = "Beenden";
23 private static final String MENU_OPTION_PREF = "Einstellungen";
24
25 /* Menu Items werden erstellt */
26 public boolean onCreateOptionsMenu(Menu menu) {
27 menu.add(0, MENU_AKTUALISIEREN, 0, MENU_OPTION_AKTUALISIEREN).setIcon(
28 R.drawable.ic_menu_refresh);
29 menu.add(0, MENU_EINTRAG, 0, MENU_OPTION_EINTRAG).setIcon(
30 android.R.drawable.ic_menu_add);
31 menu.add(0, MENU_PREF, 0, MENU_OPTION_PREF).setIcon(
32 android.R.drawable.ic_menu_preferences);
33 menu.add(0, MENU_BEENDEN, 0, MENU_OPTION_BEENDEN).setIcon(
34 android.R.drawable.ic_menu_close_clear_cancel);
35 return true;
36 }
37
38 public boolean onOptionsItemSelected(MenuItem item) {
39 switch (item.getItemId()) {
40 case MENU_AKTUALISIEREN:
41 Toast.makeText(getApplicationContext(),
42 "Feature noch nicht implementiert", Toast.LENGTH_LONG)
43 .show();
44 break;
45 case MENU_EINTRAG:
46 startActivity(new Intent(this, Eintrag.class));
47 break;
48 case MENU_BEENDEN:
49 AlertDialog.Builder builder = new AlertDialog.Builder(this);
50 builder.setMessage("Möchtest du App Wunsch Beenden?").setTitle(
51 "Beenden").setCancelable(false).setPositiveButton("Ja",
52 new DialogInterface.OnClickListener() {
53 public void onClick(DialogInterface dialog, int id) {
54 System.exit(0);
55 }
56 }).setNegativeButton("Nein",
57 new DialogInterface.OnClickListener() {
58 public void onClick(DialogInterface dialog, int id) {
59 dialog.dismiss();
60 }
61 });
62 AlertDialog alert = builder.create();
63 alert.show();
64 break;
65 case MENU_PREF:
66 Intent settingsActivity = new Intent(getBaseContext(),
67 Einstellungen.class);
68 startActivity(settingsActivity);
69 break;
70 }
71 return false;
72 }
73}
Die MenuActivity kann über den "Menü-Button" aufgerufen werden und verhält sich wie ein normales Menü.
Nun möchte ich, wenn ich dort auf "Aktualisieren" klicke die Funktion "getData()" aus der MainActivity aufrufen.
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.