@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initViews(); //将api传入 new Ac().execute(API); } private void initViews() { list_view = findViewById(R.id.list_view); } class Ac extends AsyncTask<String,Void,String>{ @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected String doInBackground(String... strings) { try { //获取从参数中获取api的下标 URL url = new URL(strings[0]); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); if (connection.getResponseCode() == HttpURLConnection.HTTP_OK){ InputStream inputStream = connection.getInputStream(); String s = inputStream2String(connection.getInputStream()); return s; } } catch (Exception e) { e.printStackTrace(); } return null; } private String inputStream2String(InputStream inputStream) throws IOException { int len = 0; byte[] b = new byte[1024]; StringBuffer stringBuffer = new StringBuffer(); while((len = inputStream.read(b))!=-1){ String s = new String(b,0,len); stringBuffer.append(s); } return stringBuffer.toString(); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); //解析Gson Gson gson = new Gson(); Bean bean = gson.fromJson(s, Bean.class); List<Bean.DataBean> data = bean.getData(); //设置适配器 MyAdapter myAdapter = new MyAdapter(MainActivity.this,data); list_view.setAdapter(myAdapter); } } }
AsyncTask 基础写法
最新推荐文章于 2023-06-23 08:45:00 发布