Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package at.dtr.cocktails;
- import java.io.BufferedReader;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.util.ArrayList;
- import org.apache.http.HttpEntity;
- import org.apache.http.HttpResponse;
- import org.apache.http.NameValuePair;
- import org.apache.http.client.HttpClient;
- import org.apache.http.client.entity.UrlEncodedFormEntity;
- import org.apache.http.client.methods.HttpPost;
- import org.apache.http.impl.client.DefaultHttpClient;
- import org.json.JSONArray;
- import org.json.JSONException;
- import org.json.JSONObject;
- import android.app.ListActivity;
- import android.app.ProgressDialog;
- import android.os.Bundle;
- import android.os.Handler;
- import android.os.Message;
- import android.util.Log;
- import android.view.Menu;
- import android.view.MenuInflater;
- import android.view.MenuItem;
- import android.view.View;
- import android.widget.ArrayAdapter;
- import android.widget.ListView;
- import android.widget.Toast;
- public class MainActivity extends ListActivity implements Runnable {
- /** Called when the activity is first created. */
- InputStream is;
- ArrayList<String> cListArray = new ArrayList<String>();
- ArrayList<String> cDetailsArray = new ArrayList<String>();
- JSONObject json_data;
- private ProgressDialog pd;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- // Kontrolle, ob eine Internetverbindung aufgebaut ist
- if (AppStatus.getInstance(this).isOnline(this)) {
- // ProgressDialog wird erstellt
- pd = ProgressDialog.show(this, "", "loading...", true, false);
- // neuer Thread wird erstellt
- Thread thread = new Thread(this);
- // nach thread.start() wird die run()-Methode ausgeführt
- thread.start();
- } else {
- Toast.makeText(this, R.string.e_connection, 10000).show();
- Log.e("log_tag", "No network connection");
- }
- }
- public void run() {
- // TODO Auto-generated method stub
- String IP = "192.168.1.108";
- String PhpFile = "getdata.php";
- // Liste der Cocktails
- String cList = "";
- // Details des jeweiligen Cocktails
- String cDetails = "";
- ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
- // Verbindung zur PHP-Datei wird hergestellt
- try {
- HttpClient httpclient = new DefaultHttpClient();
- HttpPost httppost = new HttpPost("http://" + IP + "/" + PhpFile);
- httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
- HttpResponse response = httpclient.execute(httppost);
- HttpEntity entity = response.getEntity();
- is = entity.getContent();
- } catch (Exception e) {
- Log.e("log_tag", "Fehler bei der HTTP-Verbindung " + e.toString());
- }
- // die Tabellendaten, die von der PHP-Datei ausgelesen wurden, werden in
- // den String 'cList' gespeichert
- try {
- BufferedReader reader = new BufferedReader(new InputStreamReader(
- is, "iso-8859-1"), 8);
- StringBuilder sb = new StringBuilder();
- String line = null;
- while ((line = reader.readLine()) != null) {
- sb.append(line + "n");
- }
- is.close();
- cList = sb.toString();
- } catch (Exception e) {
- Log.e("log_tag", "Error converting result " + e.toString());
- }
- // String 'cList' wird in ein JSON-Array konvertiert
- try {
- JSONArray jArray = new JSONArray(cList);
- for (int i = 0; i < jArray.length(); i++) {
- json_data = jArray.getJSONObject(i);
- cListArray.add((String) json_data.get("name"));
- }
- } catch (JSONException e) {
- Log.e("log_tag", "Error parsing data " + e.toString());
- }
- // leere Nachricht wird an den Handler gesendet
- handler.sendEmptyMessage(0);
- }
- // neuer Handler wird erstellt
- private Handler handler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- // ProgessDialog wird beendet und fillList() wird ausgeführt
- pd.dismiss();
- fillList();
- }
- };
- // Array 'cListArray' wird in die listView geschrieben
- public void fillList() {
- this.setListAdapter(new ArrayAdapter<String>(this,
- android.R.layout.simple_list_item_1, cListArray));
- }
- // Array 'cListArray' wird neu befüllt
- public void refreshList(){
- if (AppStatus.getInstance(this).isOnline(this)) {
- cListArray.clear();
- pd = ProgressDialog.show(this, "", "loading...", true, false);
- Thread thread = new Thread(this);
- thread.start();
- } else {
- Toast.makeText(this, R.string.e_connection, 10000).show();
- Log.e("log_tag", "No network connection");
- }
- }
- @Override
- protected void onListItemClick(ListView l, View v, int position, long id) {
- String item = (String) getListAdapter().getItem(position);
- Toast.makeText(this, item + " selected", Toast.LENGTH_SHORT).show();
- }
- // Options Menu wird generiert, Daten kommen von /res/menu/menu.xml
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- MenuInflater inflater = getMenuInflater();
- inflater.inflate(R.menu.menu, menu);
- return true;
- }
- // onClickListener fürs Options Menu
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- if (item.getItemId() == R.id.refresh) {
- refreshList();
- }
- if (item.getItemId() == R.id.about) {
- AboutDialog about = new AboutDialog(this);
- about.setTitle(R.string.om_about_heading);
- about.show();
- }
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement