Json解析Handler+异步文字+异步图片

注册页面
public class MainActivity extends AppCompatActivity {

    private EditText num;
    private EditText pwd;
    private Button register;
    private String password;
    private String mobile;


    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            Bean bean = (Bean) msg.obj;
            String beanMsg = bean.getMsg();
            tusi.setText(beanMsg);
            if (beanMsg.equals("注册成功")){
                Intent intent = new Intent(MainActivity.this,Two_Activity.class);
                startActivity(intent);
            }
        }
    };
    private TextView tusi;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //获取资源id
        num = findViewById(R.id.num);
        pwd = findViewById(R.id.pwd);
        register = findViewById(R.id.register);
        tusi = findViewById(R.id.tusi);

        //按钮的点击事件
        register.setOnClickListener(new View.OnClickListener() {



            @Override
            public void onClick(View view) {
                //获取EditText控件里的内容
                mobile = num.getText().toString();
                password = pwd.getText().toString();

                //开启线程
                new Thread(){
                    @Override
                    public void run() {
                        requestData();
                    }
                }.start();

            }
        });




    }

    private void requestData() {
        try {
            URL url = new URL("http://120.27.23.105/user/reg?mobile="+mobile+"&password="+password+"");
            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

            urlConnection.setRequestMethod("GET");
            urlConnection.setReadTimeout(5000);
            urlConnection.setConnectTimeout(5000);

            if (urlConnection.getResponseCode() == 200){
                InputStream inputStream = urlConnection.getInputStream();

                String s = steamToString(inputStream);

                Gson gson = new Gson();
                Bean bean = gson.fromJson(s, Bean.class);
                Message message = Message.obtain();
                message.obj = bean;
                handler.sendMessage(message);
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public String steamToString(InputStream inputStream){

        StringBuilder builder = null;
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
            String str;
            builder = new StringBuilder();
            while ((str = reader.readLine()) != null){
                builder.append(str);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return builder.toString();
    }
}
 
 
跳转后
public class Two_Activity extends AppCompatActivity {

    private ListView lv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_two_);

        lv = findViewById(R.id.lv);

        //执行异步任务
        MyTask myTask = new MyTask();
        myTask.execute();
    }

    class MyTask extends AsyncTask<String,Void,String>{

        @Override
        protected String doInBackground(String... strings) {
            try {
                URL url = new URL("http://120.27.23.105/product/getProducts?pscid=1&page=1&sort=0");
                HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
                urlConnection.setRequestMethod("GET");
                urlConnection.setReadTimeout(5000);
                urlConnection.setConnectTimeout(5000);
                int responseCode = urlConnection.getResponseCode();

                if (responseCode == 200){

                    InputStream inputStream = urlConnection.getInputStream();

                    return streamToString(inputStream);
                }

            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            Gson gson = new Gson();
            ListBean listBean = gson.fromJson(s, ListBean.class);

            MyAdapter myAdapter = new MyAdapter(Two_Activity.this,listBean.getData());
            lv.setAdapter(myAdapter);
        }

        public String streamToString(InputStream inputStream){
            StringBuilder builder = new StringBuilder();
            try {

                BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
                String str;
                while ((str = reader.readLine()) != null){
                    builder.append(str);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            return builder.toString();


        }
    }
Adapter适配器页面
public class MyAdapter extends BaseAdapter {
    Context context;
   List<ListBean.DataBean> data;

    public MyAdapter(Context context,List<ListBean.DataBean> data) {
        this.context = context;
       this.data = data;
    }



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

    @Override
    public Object getItem(int i) {
        return data.get(i);
    }

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

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        ViewHolder holder;
        if (view == null){
            view = View.inflate(context,R.layout.lv_layout,null);
            holder = new ViewHolder();
            holder.img = view.findViewById(R.id.imageView);
            holder.textView = view.findViewById(R.id.textView);
            view.setTag(holder);
        }else {
            holder = (ViewHolder) view.getTag();
        }
        holder.textView.setText(data.get(i).getTitle());
        //holder.img.setImageBitmap();
        //异步获取图片
        MypicTask mypicTask = new MypicTask(holder.img);
        String[] split = data.get(i).getImages().split("\\|");
        mypicTask.execute(split[0]);
        return view;
    }
    private class ViewHolder{
        ImageView img;
        TextView textView;

    }
    class MypicTask extends AsyncTask<String,Void,Bitmap> {
        private ImageView img;

        public MypicTask(ImageView img) {
            this.img = img;
        }

        @Override
        protected Bitmap doInBackground(String... strings) {
            try {
                URL url = new URL(strings[0]);
                HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
                urlConnection.setRequestMethod("GET");
                urlConnection.setConnectTimeout(5000);
                urlConnection.setReadTimeout(5000);
                if (urlConnection.getResponseCode() == 200){
                    InputStream inputStream = urlConnection.getInputStream();
                    Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
                    return bitmap;
                }

            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;

        }

        @Override
        protected void onPostExecute(Bitmap bitmap) {
            super.onPostExecute(bitmap);

            //设置给控件进行展示
            img.setImageBitmap(bitmap);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值