网络请求数据

public class MainActivity extends AppCompatActivity {
    private String picUrl = "http://wimg.spriteapp.cn/profile/20180902094606900979.jpg";
    private String dataUrl = "https://api.apiopen.top/getJoke?page=1&count=2&type=video";
    private ListView listView;
    private ImageView imageView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView = findViewById(R.id.listview);
        imageView = findViewById(R.id.imageview);
        boolean b = HttpUtil.isNetConnection(MainActivity.this);
        if (b){
            //有网
            Toast.makeText(MainActivity.this,"有网",Toast.LENGTH_SHORT).show();
            new MyAsyncTask().execute(dataUrl);
            new PicAsyncTask(imageView).execute(picUrl);
        }else {
            //没网
            Toast.makeText(MainActivity.this,"没网",Toast.LENGTH_SHORT).show();
        }

    }
    public class MyAsyncTask extends AsyncTask<String,Void,String>{

        private List<Zi> list;

        @Override
        protected void onPostExecute(String string) {
            super.onPostExecute(string);
            Gson gson = new Gson();
            Duan fromJson = gson.fromJson(string, Duan.class);
            list = new ArrayList<>();
            list = fromJson.getResult();
            MyBaseAdapter adapter = new MyBaseAdapter(MainActivity.this,list);
            listView.setAdapter(adapter);
        }

        @Override
        protected String doInBackground(String... strings) {
            String netData = HttpUtil.getNetData(strings[0]);
            return netData;
        }
    }
    public class PicAsyncTask extends AsyncTask<String,Void,Bitmap>{
        ImageView iv;

        public PicAsyncTask(ImageView iv) {
            this.iv = iv;
        }

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

        @Override
        protected Bitmap doInBackground(String... strings) {
            Bitmap netPic = HttpUtil.getNetPic(strings[0]);
            return netPic;
        }
    }
}





public class HttpUtil {
    //网络判断
    public static boolean isNetConnection(Context context){
        if (context != null){
            ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo info = manager.getActiveNetworkInfo();
            if (info != null){
                return info.isAvailable();
            }
        }
        return false;
    }
    //请求数据
    public static String getNetData(String dataUrl){
        try {
            URL url = new URL(dataUrl);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");
            int code = connection.getResponseCode();
            if (code == HttpURLConnection.HTTP_OK){
                InputStream inputStream = connection.getInputStream();
                BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
                StringBuilder builder = new StringBuilder();
                String str = "";
                if ((str = reader.readLine()) != null){
                    builder.append(str);
                }
                return builder.toString();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "";
    }
    public static Bitmap getNetPic(String picUrl){
        try {
            URL url = new URL(picUrl);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");
            int code = connection.getResponseCode();
            if (code == HttpURLConnection.HTTP_OK){
                InputStream inputStream = connection.getInputStream();
                Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
                return bitmap;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}







public class MyBaseAdapter extends BaseAdapter {

    private Context context;
    private List<Zi> list;

    public MyBaseAdapter(Context context, List<Zi> list) {
        this.context = context;
        this.list = list;
    }

    @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;
        if (convertView == null){
            convertView = View.inflate(context, R.layout.item_listview,null);
            holder = new ViewHolder();
            holder.textView = convertView.findViewById(R.id.text);
            holder.imageView = convertView.findViewById(R.id.image);
            convertView.setTag(holder);
        }else {
            holder = (ViewHolder) convertView.getTag();
        }
        holder.textView.setText(list.get(position).getText());
        Glide.with(context).load(list.get(position).getThumbnail()).into(holder.imageView);
        return convertView;
    }
    class ViewHolder{
        ImageView imageView;
        TextView textView;
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值