Banner+ExpandableListView

来源:互联网 发布:银行家算法实验分析 编辑:程序博客网 时间:2024/06/06 17:48
import android.content.Context;import android.database.DataSetObserver;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.AsyncTask;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.EditText;import android.widget.ExpandableListAdapter;import android.widget.ExpandableListView;import android.widget.ImageView;import android.widget.TextView;import com.bumptech.glide.Glide;import com.bumptech.glide.util.Util;import com.bwie.lianxi.Bean.Bean;import com.bwie.lianxi.Utils.Utils;import com.google.gson.Gson;import com.youth.banner.Banner;import com.youth.banner.BannerConfig;import com.youth.banner.loader.ImageLoader;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {    private Banner banner;    String str[] = {"http://i3.s2.dpfile.com/2010-12-20/6201691_b.jpg(249x249)/thumb.jpg","http://img.juhe.cn//cookbook/s/1/52_22e562a234ed1891.jpg","http://i1.s1.dpfile.com/pc/f59ce7b879eea202f36692aa9ead9dac(249x249)/thumb.jpg"};    private ArrayList list;    private EditText edit;    private ExpandableListView expand;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        banner = (Banner) findViewById(R.id.banner);        edit = (EditText) findViewById(R.id.edit);        expand = (ExpandableListView) findViewById(R.id.erji);        list = new ArrayList<>();        for (String s:str) {            list.add(s);        }        banner.setImageLoader(new Glide1());        banner.setImages(list);        banner.setBannerStyle(BannerConfig.NUM_INDICATOR_TITLE);        banner.setDelayTime(2000);        banner.start();    }    public class Glide1 extends ImageLoader{        @Override        public void displayImage(Context context, Object path, ImageView imageView) {            Glide.with(context).load(path).into(imageView);        }    }    public void Button(View view){        String string = edit.getText().toString();        qingqiu(string);    }    public void qingqiu(String string){       new AsyncTask<String,Void,String>(){           private List<String> albums;           private String title;           List<Bean.ResultBean.DataBean.StepsBean> steps;           List<Bean.ResultBean.DataBean> data;           @Override           protected void onPostExecute(String s) {               super.onPostExecute(s);               Gson gson = new Gson();               Bean bean = gson.fromJson(s, Bean.class);               data = bean.getResult().getData();               title = bean.getResult().getData().get(0).getTitle();               albums = bean.getResult().getData().get(0).getAlbums();               steps = bean.getResult().getData().get(0).getSteps();               erji();           }           private void erji() {               expand.setAdapter(new ExpandableListAdapter() {                   @Override                   public void registerDataSetObserver(DataSetObserver observer) {                   }                   @Override                   public void unregisterDataSetObserver(DataSetObserver observer) {                   }                   @Override                   public int getGroupCount() {                       return albums.size();                   }                   @Override                   public int getChildrenCount(int groupPosition) {                       return steps.size();                   }                   @Override                   public Object getGroup(int groupPosition) {                       return albums.get(groupPosition);                   }                   @Override                   public Object getChild(int groupPosition, int childPosition) {                       return steps.get(childPosition);                   }                   @Override                   public long getGroupId(int groupPosition) {                       return groupPosition;                   }                   @Override                   public long getChildId(int groupPosition, int childPosition) {                       return childPosition;                   }                   @Override                   public boolean hasStableIds() {                       return false;                   }                   @Override                   public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {                       View groupview = View.inflate(MainActivity.this, R.layout.group, null);                       final ImageView img = (ImageView) groupview.findViewById(R.id.img_fu);                       TextView textView = (TextView) groupview.findViewById(R.id.tv_fu);                       textView.setText(title);                       new AsyncTask<String,Void,Bitmap>(){                           @Override                           protected void onPostExecute(Bitmap bitmap) {                               super.onPostExecute(bitmap);                               if(bitmap != null){                                   img.setImageBitmap(bitmap);                               }else {                                   img.setImageResource(R.mipmap.ic_launcher);                               }                           }                           @Override                           protected Bitmap doInBackground(String... params) {                               try {                                   String path = params[0];                                   URL url = new URL(path);                                   HttpURLConnection connection = (HttpURLConnection) url.openConnection();                                   connection.setRequestMethod("GET");                                   connection.setReadTimeout(5000);                                   connection.setConnectTimeout(5000);                                   int code = connection.getResponseCode();                                   if(code == HttpURLConnection.HTTP_OK){                                       InputStream is = connection.getInputStream();                                       return BitmapFactory.decodeStream(is);                                   }                               } catch (Exception e) {                                   e.printStackTrace();                               }                               return null;                           }                       }.execute(albums.get(groupPosition));                       return groupview;                   }                   @Override                   public View getChildView(int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {                       View childview = View.inflate(MainActivity.this, R.layout.child, null);                       final ImageView img = (ImageView) childview.findViewById(R.id.img_zi);                       TextView textview = (TextView) childview.findViewById(R.id.tv_zi);                       textview.setText(steps.get(childPosition).getStep());                       new AsyncTask<String,Void,Bitmap>(){                           @Override                           protected void onPostExecute(Bitmap bitmap) {                               super.onPostExecute(bitmap);                               if (bitmap != null){                                   img.setImageBitmap(bitmap);                               }else {                                   img.setImageResource(R.mipmap.ic_launcher);                               }                           }                           @Override                           protected Bitmap doInBackground(String... params) {                               try {                                   String path = params[0];                                   URL url = new URL(path);                                   HttpURLConnection connection = (HttpURLConnection) url.openConnection();                                   connection.setRequestMethod("GET");                                   connection.setConnectTimeout(5000);                                   connection.setReadTimeout(5000);                                   int code = connection.getResponseCode();                                   if(code == HttpURLConnection.HTTP_OK){                                       InputStream is = connection.getInputStream();                                      return BitmapFactory.decodeStream(is);                                   }                               } catch (Exception e) {                                   e.printStackTrace();                               }                               return null;                           }                       }.execute(steps.get(childPosition).getImg());                       return childview;                   }                   @Override                   public boolean isChildSelectable(int groupPosition, int childPosition) {                       return false;                   }                   @Override                   public boolean areAllItemsEnabled() {                       return false;                   }                   @Override                   public boolean isEmpty() {                       return false;                   }                   @Override                   public void onGroupExpanded(int groupPosition) {                   }                   @Override                   public void onGroupCollapsed(int groupPosition) {                   }                   @Override                   public long getCombinedChildId(long groupId, long childId) {                       return 0;                   }                   @Override                   public long getCombinedGroupId(long groupId) {                       return 0;                   }               });           }           @Override           protected String doInBackground(String... params) {               try {                   String path = params[0];                   URL url = new URL(path);                   HttpURLConnection connection = (HttpURLConnection) url.openConnection();                   connection.setRequestMethod("GET");                   connection.setConnectTimeout(5000);                   connection.setReadTimeout(5000);                   int code = connection.getResponseCode();                   if(code == HttpURLConnection.HTTP_OK){                       InputStream is = connection.getInputStream();                       String json = Utils.read(is);                       return  json;                   }               } catch (Exception e) {                   e.printStackTrace();               }               return null;           }       }.execute("http://apis.juhe.cn/cook/query.php?key=1c4789006d667db3a36f20f7cbd6aa02&menu="+string.trim());    }}