Hander和HttpURLConnection和Gson解析网络数据设置listView

try {
                    URL url=new URL("http://172.17.8.100/movieApi/movie/v1/findHotMovieList?page=1&count=10");
                    HttpURLConnection connection= (HttpURLConnection) url.openConnection();
                    connection.setRequestMethod("GET");
                    connection.setConnectTimeout(3000);
                    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=Message.obtain();
                        message.obj=str1;
                        handler.sendMessage(message);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }

解析

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());
            MyAdapter myAdapter=new MyAdapter(list,MainActivity.this);
            listView.setAdapter(myAdapter);
        }
    };

设置适配器和ViewHolder优化

private ArrayList<User.resultbase> list;
    private Context context;

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

    @Override
    public int getCount() {
        return list.size();
    }

    @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) {
        ViewHolder holder=null;
        if (convertView==null){
            convertView=View.inflate(context,R.layout.item_list,null);
            holder=new ViewHolder();
            holder.image=convertView.findViewById(R.id.image);
            holder.text1=convertView.findViewById(R.id.text1);
            holder.text2=convertView.findViewById(R.id.text2);
            convertView.setTag(holder);
        }else {
            holder= (ViewHolder) convertView.getTag();
        }
        holder.text1.setText(list.get(position).getName());
        holder.text2.setText(list.get(position).getSummary());
        Picasso.with(context).load(list.get(position).getImageUrl()).into(holder.image);
        return convertView;
    }
    class ViewHolder{
        ImageView image;
        TextView text1,text2;
    }

猜你喜欢

转载自blog.csdn.net/qq_42793219/article/details/83655564