Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.javacodegeeks.android.json;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.Reader;
- import java.util.List;
- import org.apache.http.HttpEntity;
- import org.apache.http.HttpResponse;
- import org.apache.http.client.methods.HttpGet;
- import org.apache.http.impl.client.DefaultHttpClient;
- import android.app.Activity;
- import android.content.Context;
- import android.os.AsyncTask;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.widget.Button;
- import android.widget.Toast;
- import com.google.gson.Gson;
- import com.javacodegeeks.android.json.model.Result;
- import com.javacodegeeks.android.json.model.SearchResponse;
- public class JsonParsingActivity extends Activity {
- private static final String url = "http://search.twitter.com/search.json?q=javacodegeeks";
- protected InitTask _initTask;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- Button button = (Button)findViewById(R.id.button1);
- button.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- _initTask = new InitTask();
- _initTask.execute( getApplicationContext() );
- }
- });
- }
- @Override
- public void onStop() {
- super.onStop();
- _initTask.cancel(true);
- }
- protected class InitTask extends AsyncTask<Context, String, SearchResponse>
- {
- @Override
- protected SearchResponse doInBackground( Context... params )
- {
- InputStream source = retrieveStream(url);
- SearchResponse response = null;
- if (source != null) {
- Gson gson = new Gson();
- Reader reader = new InputStreamReader(source);
- try {
- response = gson.fromJson(reader, SearchResponse.class);
- publishProgress( response.query );
- reader.close();
- } catch (Exception e) {
- Log.w(getClass().getSimpleName(), "Error: " + e.getMessage() + " for URL " + url);
- }
- }
- if (!this.isCancelled()) {
- return response;
- } else {
- return null;
- }
- }
- @Override
- protected void onProgressUpdate(String... s)
- {
- super.onProgressUpdate(s);
- Toast.makeText(getApplicationContext(), s[0], Toast.LENGTH_SHORT).show();
- }
- @Override
- protected void onPostExecute( SearchResponse response )
- {
- super.onPostExecute(response);
- StringBuilder builder = new StringBuilder();
- if (response != null) {
- String delim = "* ";
- List<Result> results = response.results;
- for (Result result : results) {
- builder.append(delim).append(result.fromUser);
- delim="\n* ";
- }
- }
- if (builder.length() > 0) {
- Toast.makeText(getApplicationContext(), builder.toString(), Toast.LENGTH_SHORT).show();
- } else {
- Toast.makeText(getApplicationContext(), "The response was empty.", Toast.LENGTH_SHORT).show();
- }
- }
- @Override
- protected void onCancelled() {
- super.onCancelled();
- Toast.makeText(getApplicationContext(), "The operation was cancelled.", 1).show();
- }
- private InputStream retrieveStream(String url) {
- DefaultHttpClient client = new DefaultHttpClient();
- HttpGet getRequest;
- try {
- getRequest = new HttpGet(url);
- HttpResponse getResponse = client.execute(getRequest);
- HttpEntity getResponseEntity = getResponse.getEntity();
- return getResponseEntity.getContent();
- } catch (Exception e) {
- Log.w(getClass().getSimpleName(), "Error for URL " + url, e);
- return null;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement