Android Open Source - FoodFinderApp Async Search Items






From Project

Back to project page FoodFinderApp.

License

The source code is released under:

GNU General Public License

If you think the Android project FoodFinderApp listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package cs499.examples.semesterproject;
//w w w .  j  a  v a  2 s. c  om
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.AsyncTask;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class AsyncSearchItems extends AsyncTask <String, String, JSONArray>
{
  String [] items;
  ArrayList<String> selectedItems = new ArrayList<String>();
  DisplayPlaceItems ac;
  ListView lv;
  List<NameValuePair> pairs;
  String url;
  ProgressDialog progressDialog;
  
  private String s;
  private List<NameValuePair> requests;
  
  
  public AsyncSearchItems(DisplayPlaceItems ac, String url, List<NameValuePair> pairs,
      ListView lv) 
  {
    this.ac = ac;
      this.url = url;
      this.lv = lv;
      this.pairs = pairs;    
  }

   
  protected void onPreExecute() 
  {
    // TODO Auto-generated method stub
    progressDialog = new ProgressDialog(ac);
      progressDialog.setMessage("Fetching items from food place...");
        progressDialog.show();  
    }
  

   
  protected JSONArray doInBackground(String... params) {
    // TODO Auto-generated method stub
    for (int i = 0; i < pairs.size(); i++)
    {
      Log.d(pairs.get(i).getName() + ": ", pairs.get(i).getValue());
    }
      return this.getJSONFromUrl(this.url);
  }

   
  public JSONArray getJSONFromUrl(String url) {
    // Making HTTP request
        InputStream is = null; 
        String json = null;
        JSONArray jObj = null;
          try {
              // defaultHttpClient
              DefaultHttpClient httpClient = new DefaultHttpClient();
              HttpPost post = new HttpPost(url);
              post.setEntity(new UrlEncodedFormEntity(pairs));
              HttpResponse httpResponse = httpClient.execute(post);
              HttpEntity httpEntity = httpResponse.getEntity();
              is = httpEntity.getContent();           

          } catch (UnsupportedEncodingException e) {
              e.printStackTrace();
          } catch (ClientProtocolException e) {
              e.printStackTrace();
          } catch (IOException e) {
              e.printStackTrace();
          }

          try {
              BufferedReader br = new BufferedReader(new InputStreamReader(is));
              StringBuilder sb = new StringBuilder();
              int value=0;
              int count = 0;
               
               // reads to the end of the stream 
              value = br.read();
               while( value != -1)
               {
                  // converts int to character
                  char c = (char)value;
                  sb.append(c);
                  count++;
                  //System.out.println(c);
                  value = br.read();
               }
              is.close();
              String s = sb.toString();
              System.out.println("Characters read: "+count+", Length of S: "+s.length());
              json = s;
              System.out.println("getJSONfromURL: "+ json);
          } catch (Exception e) {
              Log.e("Buffer Error", "Error converting result " + e.toString());
          }
          

          // try parse the string to a JSON object
          try {
              jObj = new JSONArray(json);
          } catch (JSONException e) {
              Log.e("JSON Parser", "Error parsing data " + e.toString());
          }

          // return JSON String
          return jObj;
  }

  public void showQueryResults(JSONArray j) 
  {
    // TODO Auto-generated method stub
    ArrayList<HashMap<String, String>> itemsList = new ArrayList<HashMap<String,String>>();
    
    try
    {
      JSONArray docs = j;
      Log.d("Length of JSON Array: ", "" + docs.length());
      if (docs.length() > 0)
      {
        for (int i = 0; i < docs.length(); i++)
        {
                  JSONObject c = (JSONObject)docs.getJSONObject(i);
                  
                  String foodplacename = c.getString("foodplacename");
                  String itemName = c.getString("itemname");
                  String itemAmount = String.valueOf(c.getInt("itemtype"));
                  String itemId = String.valueOf(c.getInt("itemid"));
                  
                  HashMap<String, String> map = new HashMap<String, String>();
  
                  map.put("foodplacename", foodplacename);
                  map.put("itemName", itemName);
                  map.put("itemAmount", itemAmount);
                  map.put("itemId", itemId);
                  
                  itemsList.add(map);
                  Log.d("Display Item: ", itemId + " " + foodplacename 
                      + " " + itemName + " " + itemAmount + " ");
        }
      }
    }
    catch (Exception e)
    {
      e.printStackTrace();
    }
    
    items = new String[itemsList.size()];
    int i = 0;
    for (HashMap<String,String> map: itemsList)
    {
      String a = "Item:" + (String)map.get("itemName")
          + ", Quantity:" + (String)map.get("itemAmount");
      items[i++] = a;
    }
    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this.ac,android.R.layout.simple_list_item_1, items);
    lv.setAdapter(adapter);
    lv.setClickable(true);
    
  }


   
  protected void onPostExecute(JSONArray jobj) 
  {
    // TODO Auto-generated method stub
    if (this.progressDialog.isShowing())
      this.progressDialog.dismiss();
    this.showQueryResults (jobj);
    this.ac.notifyDataReceived();
  }
  
  
  
  

}




Java Source Code List

cs499.examples.semesterproject.AddItemsActivity.java
cs499.examples.semesterproject.AndroidFoodBankOwnerServlet.java
cs499.examples.semesterproject.AsyncAddItems.java
cs499.examples.semesterproject.AsyncAddPlace.java
cs499.examples.semesterproject.AsyncAddRestaurantToDB.java
cs499.examples.semesterproject.AsyncAuthenticateUser.java
cs499.examples.semesterproject.AsyncSearchAndShowPlaces.java
cs499.examples.semesterproject.AsyncSearchItems.java
cs499.examples.semesterproject.AsyncSendRequest.java
cs499.examples.semesterproject.AsyncViewRequests.java
cs499.examples.semesterproject.Constants.java
cs499.examples.semesterproject.DisplayMap.java
cs499.examples.semesterproject.DisplayMatchingPlaces.java
cs499.examples.semesterproject.DisplayPlaceItems.java
cs499.examples.semesterproject.DisplayPlace.java
cs499.examples.semesterproject.DisplayRequestActivity.java
cs499.examples.semesterproject.FoodBankOwnerActivity.java
cs499.examples.semesterproject.FoodOwnerOptions.java
cs499.examples.semesterproject.LoginActivity.java
cs499.examples.semesterproject.MainActivity.java
cs499.examples.semesterproject.OrganizationOptions.java
cs499.examples.semesterproject.OtherOwnerActivity.java
cs499.examples.semesterproject.QueryActivity.java
cs499.examples.semesterproject.ViewRequests.java
org.json.CDL.java
org.json.CookieList.java
org.json.Cookie.java
org.json.HTTPTokener.java
org.json.HTTP.java
org.json.JSONArray.java
org.json.JSONException.java
org.json.JSONML.java
org.json.JSONObject.java
org.json.JSONString.java
org.json.JSONStringer.java
org.json.JSONTokener.java
org.json.JSONWriter.java
org.json.Kim.java
org.json.Property.java
org.json.XMLTokener.java
org.json.XML.java
org.json.zip.BitInputStream.java
org.json.zip.BitOutputStream.java
org.json.zip.BitReader.java
org.json.zip.BitWriter.java
org.json.zip.Compressor.java
org.json.zip.Decompressor.java
org.json.zip.Huff.java
org.json.zip.JSONzip.java
org.json.zip.Keep.java
org.json.zip.MapKeep.java
org.json.zip.None.java
org.json.zip.PostMortem.java
org.json.zip.TrieKeep.java