1. 程式人生 > >asynctask獲取資訊新增到列表

asynctask獲取資訊新增到列表

開啟內部方法

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;
    }
}