asynctask獲取資訊新增到列表
阿新 • • 發佈:2018-11-05
開啟內部方法
new MyTask().execute("http://172.17.8.100/movieApi/movie/v1/findHotMovieList?page=1&count=10");
網路獲取資料並且解析 子執行緒負責獲取資料 主執行緒負責更新ui
class MyTask extends AsyncTask<String,Void,List<Task.resultbase>>{ @Override protected List<Task.resultbase> doInBackground(String... strings) { try { URL url=new URL(strings[0]); HttpURLConnection connection= (HttpURLConnection) url.openConnection(); if (connection.getResponseCode()==200){ InputStreamReader inputStreamReader=new InputStreamReader(connection.getInputStream()); BufferedReader reader=new BufferedReader(inputStreamReader); String str=""; String srt1=""; while ((str=reader.readLine())!=null){ srt1+=str; } Gson gson=new Gson(); Task task=gson.fromJson(srt1,Task.class); return task.getResult(); } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(List<Task.resultbase> dataBeans) { super.onPostExecute(dataBeans); myadapter=new myadaptertwo((ArrayList<Task.resultbase>) dataBeans,getActivity()); listView.setAdapter(myadapter); } }
介面卡
public class myadaptertwo extends BaseAdapter{ private List<Task.resultbase> mlist; private Context context; public myadaptertwo(ArrayList<Task.resultbase> mlist, Context context) { this.mlist = mlist; this.context = context; } public void setlist(ArrayList<Task.resultbase> list){ this.mlist=list; notifyDataSetChanged(); } @Override public int getCount() { return mlist.size(); } @Override public Object getItem(int position) { return mlist.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { convertView=View.inflate(context, R.layout.item,null); ImageView imageView=convertView.findViewById(R.id.image); TextView text=convertView.findViewById(R.id.text); text.setText(mlist.get(position).getName()); Picasso.with(context).load(mlist.get(position).getImageUrl()).into(imageView); return convertView; } }