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;
}
}