//主Activity
public class MainActivity extends AppCompatActivity {
private ExpandableListView expand_listview;
private EditText edit_name;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
expand_listview = (ExpandableListView) findViewById(R.id.expand_listview);
edit_name = (EditText) findViewById(R.id.edit_name);
}
public void SouSuo(View view){
MyTask myTask = new MyTask();
myTask.execute("http://apis.juhe.cn/cook/query?key=b0eeae4ccd73cce88a8d78e60c64d61c&menu="+ URLEncoder.encode(edit_name.getText().toString())+"&rn=10&pn=3");
}
class MyTask extends AsyncTask<String , Integer , String> {
@Override
protected String doInBackground(String... strings) {
try {
HttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(strings[0]);
HttpResponse execute = client.execute(httpGet);
int statusCode = execute.getStatusLine().getStatusCode();
if (statusCode == 200){
HttpEntity entity = execute.getEntity();
InputStream inputStream = entity.getContent();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
StringBuilder builder = new StringBuilder();
String s = null;
while ((s=bufferedReader.readLine()) != null){
builder.append(s);
}
bufferedReader.close();
Log.i("builder" , "builder--->" + builder.toString());
return builder.toString();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
UserBean userBean = gson.fromJson(s, UserBean.class);
List<UserBean.ResultBean.DataBean> list = userBean.getResult().getData();
List<String> glist = new ArrayList<String>();
List<List<ChileBean>> clist = new ArrayList<List<ChileBean>>();
for (int i = 0; i < list.size(); i ++){
List<ChileBean> chilelist = new ArrayList<ChileBean>();
glist.add(list.get(i).getTitle());
Log.i("glist" , "glist---->" + list.get(i).getTitle());
for (int j = 0; j < list.get(i).getSteps().size(); j ++){
chilelist.add(new ChileBean(list.get(i).getSteps().get(j).getStep()));
Log.i("chilelist" , "chilelist---->" + list.get(i).getSteps().get(j).getStep());
}
clist.add(chilelist);
}
MyexAdapter adapter = new MyexAdapter(MainActivity.this, glist, clist);
Log.i("成功" , "成功" + 1);
expand_listview.setAdapter(adapter);
}
}
}
//adapter
public class MyexAdapter extends BaseExpandableListAdapter {
Context context;
List<String> glist;
List<List<ChileBean>> clist;
public MyexAdapter(Context context, List<String> glist, List<List<ChileBean>> clist) {
this.context = context;
this.glist = glist;
this.clist = clist;
}
@Override
public int getGroupCount() {
return glist.size();
}
@Override
public int getChildrenCount(int i) {
return clist.get(i).size();
}
@Override
public Object getGroup(int i) {
return glist.get(i);
}
@Override
public Object getChild(int i, int i1) {
return clist.get(i).get(i1);
}
@Override
public long getGroupId(int i) {
return i;
}
@Override
public long getChildId(int i, int i1) {
return i1;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup) {
GHolder holder;
if (view == null){
holder = new GHolder();
view = View.inflate(context , R.layout.exlist_g , null);
holder.text_title = view.findViewById(R.id.text_title);
view.setTag(holder);
}else{
holder = (GHolder) view.getTag();
}
holder.text_title.setText(glist.get(i));
return view;
}
@Override
public View getChildView(int i, int i1, boolean b, View view, ViewGroup viewGroup) {
CHolder holder;
if (view == null){
holder = new CHolder();
view = View.inflate(context , R.layout.exlist_c , null);
holder.text_step = view.findViewById(R.id.text_step);
view.setTag(holder);
}else{
holder = (CHolder) view.getTag();
}
holder.text_step.setText(clist.get(i).get(i1).getStep());
return view;
}
@Override
public boolean isChildSelectable(int i, int i1) {
return true;
}
class GHolder{
TextView text_title;
}
class CHolder{
TextView text_step;
}
}
//ChileBean
public class ChileBean {
private String step;
public ChileBean() {
}
public ChileBean(String step) {
this.step = step;
}
public String getStep() {
return step;
}
public void setStep(String step) {
this.step = step;
}
}