package com.example.slx.slx12_30; import android.content.Intent; import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import com.google.gson.Gson; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.List; //显示listview列表,使用AsyncTask+HttpURLConntion public class MainActivity extends AppCompatActivity { private ListView listview; private List<Goods.DataBean> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //找id listview = findViewById(R.id.listview); MyTask myTask = new MyTask(); myTask.execute("https://www.zhaoapi.cn/product/getCatagory"); //列表点击条目后跳转到图2界面(添加条目点击事件),并携带参数信息,跳转到下一个页面。参数信息是(cid:端口id) listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { Intent intent = new Intent(MainActivity.this, ShowActivity.class); intent.putExtra("cid",list.get(i).getCid()+""); startActivity(intent); } }); } public class MyTask extends AsyncTask<String,Void,String>{ @Override protected String doInBackground(String... strings) { try { URL url = new URL(strings[0]); HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection(); urlConnection.setRequestMethod("GET"); urlConnection.setReadTimeout(5000); urlConnection.setConnectTimeout(5000); Log.e("pppppppppppppppppp",urlConnection.getResponseCode()+""); if(urlConnection.getResponseCode()==200){ InputStream inputStream = urlConnection.getInputStream(); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); byte[] bytes = new byte[1024]; int len=-1; while((len=inputStream.read(bytes))!=-1){ byteArrayOutputStream.write(bytes,0,len); } String s = byteArrayOutputStream.toString(); return s; } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { if (s!=null){ Log.e("sssssssssssssssss",s); Gson gson = new Gson(); Goods goods = gson.fromJson(s, Goods.class); list = goods.getData(); MyAdapter myAdapter = new MyAdapter(MainActivity.this, list); listview.setAdapter(myAdapter); } } } }
package com.example.slx.slx12_30; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.AsyncTask; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.List; /** * Created by lenovo on 2017/12/30. */ public class MyAdapter extends BaseAdapter{ private Context context; private List<Goods.DataBean> list; public MyAdapter(Context context, List<Goods.DataBean> list) { this.context = context; this.list = list; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return list.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.itemlayout,null); holder=new ViewHolder(); holder.imageview=(ImageView)view.findViewById(R.id.imageview); holder.textview=(TextView)view.findViewById(R.id.textview); view.setTag(holder); }else { holder=(ViewHolder)view.getTag(); } holder.textview.setText(list.get(i).getName()); MyPicTask myPicTask = new MyPicTask(holder.imageview); myPicTask.execute(list.get(i).getIcon()); return view; } public class ViewHolder{ TextView textview; ImageView imageview; } public 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.setReadTimeout(5000); urlConnection.setConnectTimeout(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) { if(bitmap==null){ img.setImageResource(R.mipmap.ic_launcher); }else { img.setImageBitmap(bitmap); } } } }