//主Activity
public class MainActivity extends AppCompatActivity { private ExpandableListView expand_listview ;
プライベート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 );
パブリックボイド
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 クライアント = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(strings[ 0
]);
HttpResponse execute = client.execute(httpGet); int statusCode = execute.getStatusLine().getStatusCode();
if (statusCode == 200 ){
HttpEntity エンティティ = execute.getEntity();
InputStream inputStream = entity.getContent();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
StringBuilder ビルダー =新しいStringBuilder();
文字列 s = null
;
while ((s=bufferedReader.readLine()) != null ){
builder.append(s);
}
bufferedReader.close();
ログ。i ( "builder" , "builder--->" + builder.toString());
builder.toString();を返します。
}
} catch (例外 e) {
e.printStackTrace(); null を返し
ます。
@Override protected void
onPostExecute(String s) {
super .onPostExecute(s);
Gson gson =新しい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());
ログ。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()));
ログ。i ( "chilelist" , "chilelist---->" + list.get(i).getSteps().get(j).getStep());
clist.add
(チリリスト); new MyexAdapter(MainActivity. this , glist, clist);
Log.i ( "成功" , "成功" + 1 );
expand_listview
.setAdapter (アダプター);
}
} }
//アダプタ
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;
}
}