eu estava usando o jar gson 2.2.2 e mudei para o jar que é citado na apostila gson 2.1. Não adiantou
denisspitfire
O erro foi o seguinte, na apostila bem antes fala sobre uma classe WebClient que nao tem nada ver com o gson 2.1.
no exercicio 9.4 fala sobre a classe, porem eu pedi um metodo get, e no exercicio esta post. Esta em algum lugar o metodo get? alguem esta com a apostila ae? kkk
importandroid.os.Bundle;importandroid.app.Activity;importandroid.content.Intent;importandroid.view.Menu;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;publicclassPrincipalextendsActivity{@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_principal);acoes();}privatevoidacoes(){// TODO Auto-generated method stubButtonlistar=(Button)findViewById(R.id.btLista);Buttoncadastro=(Button)findViewById(R.id.btCadastro);listar.setOnClickListener(newOnClickListener(){publicvoidonClick(Viewv){// TODO Auto-generated method stubIntentintent=newIntent(Principal.this,Lista.class);startActivity(intent);}});cadastro.setOnClickListener(newOnClickListener(){publicvoidonClick(Viewv){// TODO Auto-generated method stubIntentintent=newIntent(Principal.this,Formulario.class);startActivity(intent);}});}@OverridepublicbooleanonCreateOptionsMenu(Menumenu){getMenuInflater().inflate(R.menu.activity_principal,menu);returntrue;}}
Lista
publicclassListaextendsActivity{privateList<Produto>lista;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.lista);//carregaLista();carregaJson();}privatevoidcarregaJson(){// TODO Auto-generated method stubList<Produto>produtos=BuscaProdutosTask(this).execute();}@OverrideprotectedvoidonResume(){// TODO Auto-generated method stubsuper.onResume();//carregaLista();carregaJson();}privatevoidcarregaLista(){// TODO Auto-generated method stubListViewlistaDeProdutos=(ListView)findViewById(R.id.listaDeProdutos);ProdutoDAOdao=newProdutoDAO(this);lista=dao.getLista();ArrayAdapter<Produto>adapter=newArrayAdapter<Produto>(this,android.R.layout.simple_list_item_1,lista);listaDeProdutos.setAdapter(adapter);}}
publicclassBuscaProdutosTaskextendsAsyncTask<String,Object,List<Produto>>{privatefinalFragmentActivityactivity;privatefinalStringendereco="endinesystem.com.br/android/";privateProgressDialogprogress;publicBuscaProdutosTask(FragmentActivityactivity){this.activity=activity;this.progress=ProgressDialog.show(activity,"Aguarde...","Buscando os dados",true);}protectedList<Produto>doInBackground(String...params){try{StringjsonDosProdutos=newWebClient(endereco).get();List<Produto>produtos=newProdutoConverter().listFromJson(jsonDosProdutos);returnprodutos;}catch(Exceptione){thrownewRuntimeException(e);}}}
Ja coloquei o código todo porque estou com mta duvida nessa parte de conexao, esta muito obscuro
denisspitfire
pessoal alguem sabe porque simplesmente fecha o app sem mandar nem um log?
protectedvoidonResume(){// TODO Auto-generated method stubsuper.onResume();// carregaLista();newThread(){publicvoidrun(){carregaJson();}}.start();
pls help kkkk
king_of_gods
Denis,
Qual exercicio você estava tentando fazer?
denisspitfire
9.4 usando gson
denisspitfire
o problema é que eu to usando essa thread mas ele simplesmente fecha assim que abre aquela tela de listagem
king_of_gods
Você está enviando os dados via post ou você quer obter os dados via get?
denisspitfire
obter via get
denisspitfire
Segue oque eu estou fazendo com o get da classe WebClient
classe Lista
publicclassListaextendsActivity{privateList<Produto>lista;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.lista);// carregaLista();newThread(){publicvoidrun(){carregaJson();}}.start();}privatevoidcarregaJson(){// TODO Auto-generated method stubListViewlistaDeProdutos=(ListView)findViewById(R.id.listaDeProdutos);Stringjson=newWebClient("www.enginesystem.com.br/android/").get();lista=newProdutoConverter().listFromJson(json);ArrayAdapter<Produto>adapter=newArrayAdapter<Produto>(this,android.R.layout.simple_list_item_1,lista);listaDeProdutos.setAdapter(adapter);}}
publicclassListaextendsActivity{privateList<Produto>lista;Stringurl="www.enginesystem.com.br/android/";@OverrideprotectedvoidonCreate(BundlesavedInstanceState){// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.lista);newThread(){publicvoidrun(){carregaLista();}}.start();}@OverrideprotectedvoidonResume(){// TODO Auto-generated method stubsuper.onResume();newThread(){publicvoidrun(){carregaLista();}}.start();}privatevoidcarregaLista(){ListViewlistaDeProdutos=(ListView)findViewById(R.id.listaDeProdutos);Stringjson=newWebClient("www.enginesystem.com.br/android/").get();lista=newProdutoConverter().listFromJson(json);ArrayAdapter<Produto>adapter=newArrayAdapter<Produto>(this,android.R.layout.simple_list_item_1,lista);listaDeProdutos.setAdapter(adapter);}privatevoidcarregaLista2(){// TODO Auto-generated method stubListViewlistaDeProdutos=(ListView)findViewById(R.id.listaDeProdutos);ProdutoDAOdao=newProdutoDAO(Lista.this);lista=dao.getLista();ArrayAdapter<Produto>adapter=newArrayAdapter<Produto>(this,android.R.layout.simple_list_item_1,lista);listaDeProdutos.setAdapter(adapter);}}publicclassWebClient{privatefinalStringurl;publicWebClient(Stringurl){this.url=url;}publicStringpost(Stringjson){try{DefaultHttpClienthttpClient=newDefaultHttpClient();HttpPostpost=newHttpPost(url);post.setEntity(newStringEntity(json));post.setHeader("Accept","Application/json");post.setHeader("Content-type","application/json");HttpResponseresponse=httpClient.execute(post);StringjsonDeResposta=EntityUtils.toString(response.getEntity());returnjsonDeResposta;}catch(Exceptione){thrownewRuntimeException(e);}}publicStringget(){try{HttpClienthttpclient=newDefaultHttpClient();HttpGethttpGet=newHttpGet(url);HttpResponseresponse=httpclient.execute(httpGet);StringjsonRetorno=EntityUtils.toString(response.getEntity());returnjsonRetorno;}catch(Exceptione){thrownewRuntimeException(e);}}}publicclassProdutoConverter{publicList<Produto>listFromJson(StringjsonDosProdutos){GsonBuilderbuilder=newGsonBuilder();Gsongson=builder.create();TypelistType=newTypeToken<List<Produto>>(){}.getType();List<Produto>produtos=gson.fromJson(jsonDosProdutos,listType);returnprodutos;}}