Pessoal,
-- Estou com um erro na Classe DownloadJsonAsyncTask .
O erro causado é apenas na linha que contém o setAdapter(adapter) .
Alguém pode me ajudar ?
Segue a classe abaixo:
package com.example.exemplojson;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
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.app.AlertDialog;
import android.app.ListActivity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.util.Log;
import android.widget.ArrayAdapter;
public class DownloadJsonAsyncTask extends AsyncTask<String, Void, List<Trend>>{
MainActivity myActivity = new MainActivity();
ProgressDialog dialog;
protected void onPreExecute() {
super.onPreExecute();
dialog = ProgressDialog.show(myActivity, "Aguarde", "Baixando JSON, Por Favor Aguarde...");
}
protected List<Trend> doInBackground(String... params) {
String urlString = params[0]; HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(urlString); try {
HttpResponse response = httpclient.execute(httpget); HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
String json = toString(instream); instream.close();
List<Trend> trends = getTrends(json); return trends; } }
catch (Exception e) { Log.e("DEVMEDIA", "Falha ao acessar Web service", e); }
return null;
}
private List<Trend> getTrends(String jsonString) {
List<Trend> trends = new ArrayList<Trend>();
try {
JSONArray trendLists = new JSONArray(jsonString);
JSONObject trendList = trendLists.getJSONObject(0);
JSONArray trendsArray = trendList.getJSONArray("trends");
JSONObject trend; for (int i = 0; i < trendsArray.length(); i++) {
trend = new JSONObject(trendsArray.getString(i)); Log.i("DEVMEDIA", "nome=" + trend.getString("name")); Trend objetoTrend = new Trend(); objetoTrend.name = trend.getString("name"); objetoTrend.url = trend.getString("url"); trends.add(objetoTrend); } } catch (JSONException e) { Log.e("DEVMEDIA", "Erro no parsing do JSON", e); } return trends;
}
@Override protected void onPostExecute(List<Trend> result) {
super.onPostExecute(result); dialog.dismiss();
if (result.size() > 0) {
ArrayAdapter<Trend> adapter = new ArrayAdapter<Trend>( myActivity, android.R.layout.simple_list_item_1, result);
setAdapter(adapter); // ERRO AQUI.
//setListAdapter(adapter);
}
else {
AlertDialog.Builder builder = new AlertDialog.Builder(myActivity).setTitle("Atenção") .setMessage("Não foi possivel acessar essas informções...") .setPositiveButton("OK", null); builder.create().show();
} }
private String toString(InputStream is) throws IOException {
byte[] bytes = new byte[1024]; ByteArrayOutputStream baos = new ByteArrayOutputStream();
int lidos; while ((lidos = is.read(bytes)) > 0)
{
baos.write(bytes, 0, lidos);
}
return new String(baos.toByteArray());
}
}
class Trend {
String name; String url;
@Override public String toString() {
return name;
}
}
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.






0 comentários:
Postar um comentário