为了账号安全,请及时绑定邮箱和手机立即绑定

为什么listview没显示数据

为什么listview没显示数据

慕后端3352169 2016-09-04 10:15:11
异步加载 package com.imooc.AsynTask; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URI; import java.net.URL; import java.util.ArrayList; import java.util.List; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import com.example.asyntask.R; import android.app.Activity; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.widget.ListView; public class AsyntaskOfListView extends Activity {     ListView listview;     static String url="http://www.imooc.com/api/teacher?type=4&num=30";     @Override     protected void onCreate(Bundle savedInstanceState) {         // TODO Auto-generated method stub         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_listview);         listview=(ListView) findViewById(R.id.listview);         AnysTask task=new AnysTask();         task.execute(url);              } public List<newsBean> getJsongetJson(String url){     List<newsBean> newsBeanList=new ArrayList<newsBean>();     try {         String jdata=readStream(new URL(url).openStream());         JSONObject jsonObject;         newsBean bean;         try {             jsonObject=new JSONObject(jdata);             JSONArray jsonArray=jsonObject.getJSONArray("data");             for (int i = 0; i < jsonArray.length(); i++) {                 bean=new newsBean();                 jsonObject=jsonArray.getJSONObject(i);                 bean.image=jsonObject.getString("picSmall");                 bean.title=jsonObject.getString("name");                 bean.content=jsonObject.getString("description");                 newsBeanList.add(bean);             }         } catch (JSONException e) {             // TODO Auto-generated catch block             e.printStackTrace();         }     } catch (MalformedURLException e) {         // TODO Auto-generated catch block         e.printStackTrace();     } catch (IOException e) {         // TODO Auto-generated catch block         e.printStackTrace();     }     return newsBeanList;      } public String readStream(InputStream is){     String result = null;     try {         String line="";         InputStreamReader isr=new InputStreamReader(is, "utf-8");         BufferedReader br=new BufferedReader(isr);         while((line=br.readLine())!=null){             result+=line;         }              } catch (UnsupportedEncodingException e) {         // TODO Auto-generated catch block         e.printStackTrace();     } catch (IOException e) {         // TODO Auto-generated catch block         e.printStackTrace();     }     return result;      }      class AnysTask extends AsyncTask<String, Void, List<newsBean>>{     @Override     protected List<newsBean> doInBackground(String... params) {         // TODO Auto-generated method stub                  return getJsongetJson(params[0]);     }     @Override     protected void onPostExecute(List<newsBean> result) {         // TODO Auto-generated method stub         super.onPostExecute(result);         NewsAdapter adapter=new NewsAdapter(result,AsyntaskOfListView.this);         listview.setAdapter(adapter);     }      }} 适配器 package com.imooc.AsynTask;//适配器 import java.util.List; import com.example.asyntask.R; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; public class NewsAdapter extends BaseAdapter{     private List<newsBean> newsbeanlist;     private LayoutInflater inflater;     public NewsAdapter(List<newsBean> newsbeanlist1,Context context){         this.newsbeanlist=newsbeanlist1;         inflater=LayoutInflater.from(context);              }     @Override     public int getCount() {         // TODO Auto-generated method stub         return newsbeanlist.size();     }     @Override     public Object getItem(int arg0) {         // TODO Auto-generated method stub         return newsbeanlist.get(arg0);     }     @Override     public long getItemId(int arg0) {         // TODO Auto-generated method stub         return arg0;     }     @Override     public View getView(int arg0, View convertview, ViewGroup arg2) {         // TODO Auto-generated method stub         ViewHolder viewHolder=null;         if(convertview==null){             viewHolder=new ViewHolder();             convertview=inflater.inflate(R.layout.item, null);             viewHolder.image=(ImageView) convertview.findViewById(R.id.imageview);             viewHolder.title=(TextView) convertview.findViewById(R.id.title);             viewHolder.content=(TextView) convertview.findViewById(R.id.content);             convertview.setTag(viewHolder);         }         else{             viewHolder=(ViewHolder) convertview.getTag();         }         viewHolder.image.setImageResource(R.drawable.ic_launcher);         viewHolder.title.setText(newsbeanlist.get(arg0).title);         viewHolder.content.setText(newsbeanlist.get(arg0).content);         return convertview;     }     class ViewHolder{         public TextView title;         public TextView content;         public ImageView image;     } } 定义的泛型 package com.imooc.AsynTask; public class newsBean {     public String image;     public String title;     public String content; }
查看完整描述

1 回答

已采纳
?
慕仰6620973

TA贡献14条经验 获得超8个赞

readStream 这个方法里的
   String result = null; 改成String result = ""; 

就可以了。获取的数据时候,null也会被加进去。

查看完整回答
反对 回复 2016-09-04
  • 1 回答
  • 0 关注
  • 1653 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信