网络获取数据添加listview

主页面的方法

private void init() {
        new Thread(){
            @Override
            public void run() {
                super.run();
                try {
                    URL url=new URL("http://v.juhe.cn/toutiao/index?type=top&key=dbedecbcd1899c9785b95cc2d17131c5");
                    HttpURLConnection connection= (HttpURLConnection) url.openConnection();
                    connection.setRequestMethod("GET");
                    connection.setConnectTimeout(5000);
                    if (connection.getResponseCode()==200){
                        InputStreamReader inputStreamReader=new InputStreamReader(connection.getInputStream());
                        BufferedReader reader=new BufferedReader(inputStreamReader);
                        String str="";
                        String str1="";
                        while ((str=reader.readLine())!=null){
                            str1+=str;
                        }
                        Message message=new Message();
                        message.obj=str1;
                        handler.sendMessage(message);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }.start();
    }

hander获取

private ArrayList<User.resultbase.database> list=new ArrayList<>();
    Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            String srr= (String) msg.obj;
            Gson gson=new Gson();
            User user = gson.fromJson(srr, User.class);
            list.addAll(user.getResult().getData());
            MylistAdapter mylistAdapter=new MylistAdapter(getActivity(),list);
            listView.setAdapter(mylistAdapter);
        }
    };

adapter界面

public class MylistAdapter extends BaseAdapter{
    private Context context;
    private ArrayList<User.resultbase.database> list=new ArrayList<>();

    public MylistAdapter(Context context, ArrayList<User.resultbase.database> list) {
        this.context = context;
        this.list = list;
    }

    @Override
    public int getCount() {
        return list.size();
    }
    @Override
    public int getViewTypeCount() {
        //有几个多条目,写几个多条目
        return 2;
    }
    int type=0;
    //判断使用第一个xml
    @Override
    public int getItemViewType(int position) {
        if (list.get(position).getThumbnail_pic_s()!=null&&list.get(position).getThumbnail_pic_s02()!=null&&list.get(position).getThumbnail_pic_s03()!=null){
            type=2;
        }else if (list.get(position).getThumbnail_pic_s()!=null&&list.get(position).getThumbnail_pic_s02()==null&&list.get(position).getThumbnail_pic_s03()==null){
            type=1;
        }
        return super.getItemViewType(position);
    }

    @Override
    public Object getItem(int position) {
        return list.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (type==1){
            ViewHolder2 holder2=null;
            if (convertView==null){
                holder2=new ViewHolder2();
                convertView=View.inflate(context,R.layout.item_one2,null);
                holder2.name2=convertView.findViewById(R.id.name2);
                holder2.aimage2=convertView.findViewById(R.id.aimage2);
                holder2.bimage2=convertView.findViewById(R.id.bimage2);
                holder2.cimage2=convertView.findViewById(R.id.cimage2);
                convertView.setTag(holder2);
            }else {
                holder2= (ViewHolder2) convertView.getTag();
            }
            holder2.name2.setText(list.get(position).getAuthor_name());
            DisplayImageOptions options=new DisplayImageOptions.Builder()
                    .cacheInMemory(true)
                    .cacheOnDisk(true)
                    .bitmapConfig(Bitmap.Config.ARGB_4444)
                    .displayer(new RoundedBitmapDisplayer(20))
                    .build();
            ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s(),holder2.aimage2,options);
            ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s02(),holder2.bimage2,options);
            ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s03(),holder2.cimage2,options);
        }else {
            ViewHolder1 holder1=null;
            if (convertView==null){
                holder1=new ViewHolder1();
                convertView=View.inflate(context,R.layout.item_one1,null);
                holder1.name1=convertView.findViewById(R.id.name1);
                holder1.image1=convertView.findViewById(R.id.image1);
                convertView.setTag(holder1);
            }else {
                holder1= (ViewHolder1) convertView.getTag();
            }
            holder1.name1.setText(list.get(position).getThumbnail_pic_s());
            DisplayImageOptions options=new DisplayImageOptions.Builder()
                    .cacheInMemory(true)
                    .cacheOnDisk(true)
                    .bitmapConfig(Bitmap.Config.ARGB_4444)
                    .displayer(new RoundedBitmapDisplayer(20))
                    .build();
            ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s(),holder1.image1,options);
        }
        return convertView;
    }
    class ViewHolder1{
        TextView name1;
        ImageView image1;
    }
    class ViewHolder2{
        TextView name2;
        ImageView aimage2,bimage2,cimage2;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_42828101/article/details/83053635