亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么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.xianlaiwan.cn/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 關注
  • 1708 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號