Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.everblut.tweetexample;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.net.URLEncoder;
- import org.apache.http.HttpEntity;
- import org.apache.http.HttpResponse;
- import org.apache.http.StatusLine;
- import org.apache.http.client.ClientProtocolException;
- import org.apache.http.client.HttpClient;
- import org.apache.http.client.methods.HttpGet;
- import org.apache.http.impl.client.DefaultHttpClient;
- import org.json.JSONArray;
- import org.json.JSONException;
- import org.json.JSONObject;
- import android.os.Bundle;
- import android.app.Activity;
- import android.util.Log;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.TextView;
- import android.widget.Toast;
- public class JsonActivity extends Activity {
- private EditText txtsearch;
- private Button btn_search;
- private TextView txt;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_json);
- txtsearch = (EditText) findViewById(R.id.txtsearch);
- txt = (TextView) findViewById(R.id.text);
- btn_search = (Button) findViewById(R.id.btn_search);
- btn_search.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View arg0) {
- /*Si no ingresa nada, no sucede nada, solo un toast.*/
- if(!(txtsearch.getEditableText().toString() == "")){
- String tweets = getTweets(txtsearch.getEditableText().toString() );
- txt.setText(decode(tweets));
- }else{
- Toast.makeText(JsonActivity.this, "Ingresa algo para buscar", Toast.LENGTH_SHORT).show();
- }
- }
- });
- }
- public String decode(String data){
- StringBuilder tweets = new StringBuilder();
- try{
- /*Creamos un objeto Json con todos los tweets que encotramos.*/
- JSONObject json = new JSONObject(data);
- /*Seleccionamos el Array de resultados solamente, y de ahi creamos un array de Json's*/
- JSONArray jsonArray = json.getJSONArray("results");
- for(int i = 0; i < jsonArray.length(); i++){
- JSONObject jsonO = jsonArray.getJSONObject(i);
- tweets.append("\n Usuario: ");
- tweets.append(jsonO.getString("from_user"));
- tweets.append("\n Texto: ");
- tweets.append(jsonO.getString("text"));
- tweets.append("\n");
- }
- }catch(JSONException e){
- Log.d("Tweet","Ocurrio un error con el JSON, "+e.getMessage());
- }
- return tweets.toString();
- }
- public String getTweets(String search){
- StringBuilder builder = new StringBuilder();
- HttpClient client = new DefaultHttpClient();
- /*El dato a buscar es codificado con java usando URLEncoder.encode() */
- HttpGet get = new HttpGet("http://search.twitter.com/search.json?q="+URLEncoder.encode(search)+"&rpp=10");
- /*rpp=10 indica cuantos tweets regresar, pueden hacer algo para cambiar eso ;)*/
- try{
- HttpResponse response = client.execute(get);
- StatusLine status = response.getStatusLine();
- int statusCode = status.getStatusCode();
- if(statusCode == 200){
- HttpEntity entidad = response.getEntity();
- InputStream contenido = entidad.getContent();
- BufferedReader reader = new BufferedReader ( new InputStreamReader(contenido));
- String linea;
- while((linea = reader.readLine()) != null){
- builder.append(linea);
- }
- }else{
- Log.d("Tweet","No se pudo obtener el contenido");
- }
- }catch(ClientProtocolException e){
- Log.d("Tweet","Sucedio: " + e.getMessage());
- }catch(IOException e){
- Log.d("Tweet","Sucedio: " + e.getMessage());
- }
- return builder.toString();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement