Dificuldades em consumir JSON do Google Books

05/09/2013

0

Galera,

Sou iniciante na área, estou criando um App para consultar livros no Google, porém não consigo trazer o Json, da um erro na minha aplicação :(

Por favor me ajudem, me indiquem um tutorial que na pratica funcione, pois comprei um e-book de R$30,00 e não explica direito, pois o que ele explica é com o Twitter e a API do mesmo mudou.

Veja o meu código:


package br.com.mamboo.buscalivros;

import org.json.JSONArray;
import org.json.JSONObject;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {
	Button btnBuscar;
	EditText campoBusca;
	AlertDialog janela;
	String filtro;
	TextView resposta;
	
	


	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		btnBuscar = (Button) findViewById(R.id.btnBuscar);
		campoBusca = (EditText) findViewById(R.id.campoBusca);
		resposta	= (TextView) findViewById(R.id.RespostaDaTask);

	}
	

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	public void AlertaBtn(String titulo, String mensagem) {
		AlertDialog.Builder janela = new AlertDialog.Builder(MainActivity.this);
		janela.setTitle(titulo);
		janela.setMessage(mensagem);
		janela.setNeutralButton("Ok", null);
		janela.show();

	}
	
	
	
	public void buscaLivros(View v){
		filtro	= campoBusca.getText().toString();
		//ProgressDialog dialog	= new ProgressDialog(MainActivity.this);
		//dialog.setMessage("Buscando "+ filtro);
		new LivrosTask().execute(filtro);
				
	}
	
	
	private class LivrosTask extends AsyncTask<String, Void, String[]>{
		
		ProgressDialog dialog;
		
		@Override
		protected void onPreExecute() {
		dialog = new ProgressDialog(MainActivity.this);
		dialog.setMessage("Buscando: " + filtro);
		dialog.show();
		}
		
		
		protected void onPostExecute(String[] result) {
			dialog.dismiss();
		}
		

		@Override
		protected String[] doInBackground(String... params) {
			
			try {
				String filtro = params[0];
				if (TextUtils.isEmpty(filtro)) {
					return null;
				}
				String urlGoogleBooks = "https://www.googleapis.com/books/v1/volumes?q=";
				String url = Uri.parse(urlGoogleBooks + filtro).toString();
				String conteudo = HTTPUtils.acessar(url);
				
				
				// pegamos o resultado
				JSONObject jsonObject = new JSONObject(conteudo);
				JSONArray resultados = jsonObject.getJSONArray("results");
				
				String[] livros = new String[resultados.length()];
				
				return livros;
				
				
			} catch (Exception e) {
				throw new RuntimeException(e);
			}
			
			

		}
		
		
	}
	
		

		
	}




Agora Meu Layout

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context=".MainActivity" >
	
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:orientation="horizontal" 
        >
        
    <EditText
        android:layout_width="180dp"
        android:layout_height="wrap_content"
        android:id="@+id/campoBusca" 
        android:inputType="text"
        />
    
    <Button
        android:id="@+id/btnBuscar"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:text="@string/btnBusca"
        android:onClick="buscaLivros"
        />
        
    </LinearLayout>
    
    <EditText
        android:id="@+id/RespostaDaTask"
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"
        android:inputType="text"
        
        />
    
    

</LinearLayout>



Agora o erro que está no Log

09-05 07:04:19.036: E/WindowManager(1374): Activity br.com.mamboo.buscalivros.MainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{417a38f8 V.E..... R.....ID 0,0-228,72} that was originally added here
09-05 07:04:19.036: E/WindowManager(1374): android.view.WindowLeaked: Activity br.com.mamboo.buscalivros.MainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{417a38f8 V.E..... R.....ID 0,0-228,72} that was originally added here
09-05 07:04:19.036: E/WindowManager(1374): at android.view.ViewRootImpl.<init>(ViewRootImpl.java:345)
09-05 07:04:19.036: E/WindowManager(1374): at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:239)
09-05 07:04:19.036: E/WindowManager(1374): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
09-05 07:04:19.036: E/WindowManager(1374): at android.app.Dialog.show(Dialog.java:281)
09-05 07:04:19.036: E/WindowManager(1374): at br.com.mamboo.buscalivros.MainActivity$LivrosTask.onPreExecute(MainActivity.java:75)
09-05 07:04:19.036: E/WindowManager(1374): at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586)
09-05 07:04:19.036: E/WindowManager(1374): at android.os.AsyncTask.execute(AsyncTask.java:534)
09-05 07:04:19.036: E/WindowManager(1374): at br.com.mamboo.buscalivros.MainActivity.buscaLivros(MainActivity.java:62)
09-05 07:04:19.036: E/WindowManager(1374): at java.lang.reflect.Method.invokeNative(Native Method)
09-05 07:04:19.036: E/WindowManager(1374): at java.lang.reflect.Method.invoke(Method.java:525)
09-05 07:04:19.036: E/WindowManager(1374): at android.view.View$1.onClick(View.java:3628)
09-05 07:04:19.036: E/WindowManager(1374): at android.view.View.performClick(View.java:4240)
09-05 07:04:19.036: E/WindowManager(1374): at android.view.View$PerformClick.run(View.java:17721)
09-05 07:04:19.036: E/WindowManager(1374): at android.os.Handler.handleCallback(Handler.java:730)
09-05 07:04:19.036: E/WindowManager(1374): at android.os.Handler.dispatchMessage(Handler.java:92)
09-05 07:04:19.036: E/WindowManager(1374): at android.os.Looper.loop(Looper.java:137)
09-05 07:04:19.036: E/WindowManager(1374): at android.app.ActivityThread.main(ActivityThread.java:5103)
09-05 07:04:19.036: E/WindowManager(1374): at java.lang.reflect.Method.invokeNative(Native Method)
09-05 07:04:19.036: E/WindowManager(1374): at java.lang.reflect.Method.invoke(Method.java:525)
09-05 07:04:19.036: E/WindowManager(1374): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
09-05 07:04:19.036: E/WindowManager(1374): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-05 07:04:19.036: E/WindowManager(1374): at dalvik.system.NativeStart.main(Native Method)


Estou pesquisando muito, e conto com a ajuda de vocês

Estou estudando para desenvolver um APP da Plataforma que criei de Vendas e Compras Online.

Conheçam: [url ]www.mamboo.com.br[/url]
Francisco Oliveira

Francisco Oliveira

Responder

Posts

04/10/2013

Eduardo Pessoa

alguem com conhecimentos de intermediario em android poderia ajudar nosso amigo?
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar