diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MaterialResultAdapter.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MaterialResultAdapter.java index 83c2010..b695202 100644 --- a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MaterialResultAdapter.java +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MaterialResultAdapter.java @@ -19,15 +19,20 @@ public class MaterialResultAdapter extends RecyclerView.Adapter foodMenus; private Context context; + public MaterialResultAdapter(ArrayList foodMenus, Context context) { + this.foodMenus = foodMenus; + this.context = context; + } + @Override public MaterialResultHolder onCreateViewHolder(ViewGroup parent, int viewType) { - View view = LayoutInflater.from(context).inflate(R.layout.recommend_item_middle, parent, false); + View view = LayoutInflater.from(context).inflate(R.layout.material_result_item, parent, false); return new MaterialResultHolder(view); } @Override public void onBindViewHolder(MaterialResultHolder holder, int position) { - + holder.bindView(foodMenus.get(position)); } @Override diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MaterialResultHolder.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MaterialResultHolder.java index 83e1982..eb49c40 100644 --- a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MaterialResultHolder.java +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MaterialResultHolder.java @@ -1,5 +1,6 @@ package com.example.ninefourone.nutritionmaster.adapter; +import android.content.Intent; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ImageView; @@ -9,6 +10,8 @@ import android.widget.TextView; import com.bumptech.glide.Glide; import com.example.ninefourone.nutritionmaster.R; import com.example.ninefourone.nutritionmaster.bean.FoodMenu; +import com.example.ninefourone.nutritionmaster.bean.RecommendFood; +import com.example.ninefourone.nutritionmaster.modules.RecipeActivity.RecipeActivity; import butterknife.BindView; import butterknife.ButterKnife; @@ -18,10 +21,10 @@ import butterknife.ButterKnife; */ public class MaterialResultHolder extends RecyclerView.ViewHolder { - @BindView(R.id.recommend_item_imageview) - ImageView recommendItemImageview; - @BindView(R.id.recommend_item_title) - TextView recommendItemTitle; + @BindView(R.id.image) + ImageView image; + @BindView(R.id.name) + TextView name; @BindView(R.id.whole_layout) LinearLayout wholeLayout; @@ -30,8 +33,17 @@ public class MaterialResultHolder extends RecyclerView.ViewHolder { ButterKnife.bind(this, itemView); } - public void bindView(FoodMenu foodMenu) { - Glide.with(itemView.getContext()).load(foodMenu.getImage_url()).into(recommendItemImageview); - recommendItemTitle.setText(foodMenu.getName()); + public void bindView(final FoodMenu foodMenu) { + Glide.with(itemView.getContext()).load(foodMenu.getImage_url()).into(image); + name.setText(foodMenu.getName()); + wholeLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(itemView.getContext().getApplicationContext(), RecipeActivity.class); + RecommendFood recommendFood = new RecommendFood(foodMenu, 1); + intent.putExtra("SEND_OBJECT", recommendFood); + itemView.getContext().getApplicationContext().startActivity(intent); + } + }); } } diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/ClassifyResult.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/ClassifyResult.java index f34856d..76d550b 100644 --- a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/ClassifyResult.java +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/ClassifyResult.java @@ -64,14 +64,12 @@ public class ClassifyResult implements Serializable { public void onFailure(Call call, IOException e) { } - @Override public void onResponse(Call call, Response response) throws IOException { String json = response.body().string(); FoodMaterial material = new Gson().fromJson(json, FoodMaterial.class); foodMaterial = new Material(); foodMaterial.setFoodMaterial(material); - } }); } else { diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Material.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Material.java index ec3dea9..bc6a70b 100644 --- a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Material.java +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Material.java @@ -1,5 +1,6 @@ package com.example.ninefourone.nutritionmaster.bean; +import com.example.ninefourone.nutritionmaster.utils.MessageUtils; import com.example.ninefourone.nutritionmaster.utils.WebUtil; import com.google.gson.Gson; import com.orhanobut.logger.Logger; @@ -26,26 +27,38 @@ public class Material implements Serializable { public void setFoodMaterial(FoodMaterial foodMaterial) { this.foodMaterial = foodMaterial; - int max = foodMaterial.getCook_quantity().size() > 30 ? 30 : foodMaterial.getCook_quantity().size(); - int index = 0; -// addMenu(index, max); - for (int i = 0; i < max; i++) { - WebUtil webUtil = WebUtil.getInstance(); - FoodMaterial.CookQuantityBean temp = foodMaterial.getCook_quantity().get(i); - String menuName = temp.getMenu(); - webUtil.getMenu(menuName, new Callback() { - @Override - public void onFailure(Call call, IOException e) { + try { + int max = foodMaterial.getCook_quantity().size() > 30 ? 30 : foodMaterial.getCook_quantity().size(); + for (int i = 0; i < max; i++) { + WebUtil webUtil = WebUtil.getInstance(); + FoodMaterial.CookQuantityBean temp = foodMaterial.getCook_quantity().get(i); + String menuName = temp.getMenu(); + webUtil.getMenu(menuName, new Callback() { + @Override + public void onFailure(Call call, IOException e) { - } + } - @Override - public void onResponse(Call call, Response response) throws IOException { - Logger.d(response.body().string()); - FoodMenu menu = new Gson().fromJson(response.body().string(), FoodMenu.class); - menus.add(menu); - } - }); + @Override + public void onResponse(Call call, Response response) throws IOException { + String json = response.body().string(); + try { + FoodMenu menu = new Gson().fromJson(json, FoodMenu.class); + if (!menu.getImage_url().equals("0")) { + menus.add(menu); +// Logger.d(menu); + } + }catch (Exception e){ +// Logger.e(json); + e.printStackTrace(); + } + + } + }); + } + }catch (Exception e){ + e.printStackTrace(); +// MessageUtils.MakeToast("您当前拍摄的食材没有录入服务器"); } } diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/RecipeActivity/RecipeActivity.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/RecipeActivity/RecipeActivity.java index 9e9a292..4f7e989 100644 --- a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/RecipeActivity/RecipeActivity.java +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/RecipeActivity/RecipeActivity.java @@ -82,7 +82,7 @@ public class RecipeActivity extends BaseActivity { proteinText.setText(new Double(recommendFood.getMenu().getElements().getProtein()).intValue() + "克"); fatText.setText(new Double(recommendFood.getMenu().getElements().getFat()).intValue() + "克"); sugerText.setText(new Double(recommendFood.getMenu().getElements().getCarbohydrate()).intValue() + "克"); - Logger.d(recommendFood.getMenu().getPractice()); +// Logger.d(recommendFood.getMenu().getPractice()); initList(); initBMB(); } diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/classifyresult/MaterialResultActivity.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/classifyresult/MaterialResultActivity.java index 53cce80..58e331e 100644 --- a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/classifyresult/MaterialResultActivity.java +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/classifyresult/MaterialResultActivity.java @@ -1,10 +1,21 @@ package com.example.ninefourone.nutritionmaster.modules.classifyresult; +import android.content.Intent; import android.os.Bundle; +import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import com.example.ninefourone.nutritionmaster.R; +import com.example.ninefourone.nutritionmaster.adapter.MaterialResultAdapter; +import com.example.ninefourone.nutritionmaster.adapter.MaterialResultHolder; import com.example.ninefourone.nutritionmaster.base.BaseActivity; +import com.example.ninefourone.nutritionmaster.bean.ClassifyResult; +import com.example.ninefourone.nutritionmaster.bean.FoodMenu; +import com.example.ninefourone.nutritionmaster.bean.Material; +import com.orhanobut.logger.Logger; + +import java.util.ArrayList; +import java.util.Arrays; import butterknife.BindView; import butterknife.ButterKnife; @@ -14,7 +25,9 @@ public class MaterialResultActivity extends BaseActivity { @BindView(R.id.recycler_view) RecyclerView recyclerView; - + ArrayList classifyResults; + ArrayList list; + private MaterialResultAdapter adapter; @Override public int getLayoutId() { @@ -23,7 +36,13 @@ public class MaterialResultActivity extends BaseActivity { @Override public void initViews(Bundle savedInstanceState) { - + Intent intent = getIntent(); + classifyResults = (ArrayList) intent.getSerializableExtra("LIST"); + list = classifyResults.get(0).getFoodMaterial().getMenus(); + adapter = new MaterialResultAdapter(list, MaterialResultActivity.this); + recyclerView.setAdapter(adapter); + recyclerView.setNestedScrollingEnabled(false); + recyclerView.setLayoutManager(new LinearLayoutManager(MaterialResultActivity.this)); } @Override diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/CalculateUtils.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/CalculateUtils.java index 21f0535..ede5237 100644 --- a/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/CalculateUtils.java +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/CalculateUtils.java @@ -157,8 +157,8 @@ public class CalculateUtils { map.put("suger", suger.intValue()); map.put("fat", fat.intValue()); map.put("protein", protein.intValue()); - Logger.d(elementsBean); - Logger.d(map.toString()); +// Logger.d(elementsBean); +// Logger.d(map.toString()); return map; } @@ -171,7 +171,7 @@ public class CalculateUtils { public static ArrayList getStepArray(String whole) { ArrayList list = new ArrayList<>(); String[] array = whole.split("'"); - Logger.d(Arrays.toString(array)); +// Logger.d(Arrays.toString(array)); for (int i = 0; i < array.length; i++) { if (array[i].equals("[") || array[i].equals("]") || array[i].equals(", ") || array[i].equals(",")||array[i].equals(" ")) { @@ -180,7 +180,7 @@ public class CalculateUtils { list.add(array[i]); } } - Logger.d(Arrays.toString(list.toArray())); +// Logger.d(Arrays.toString(list.toArray())); return list; } } diff --git a/app/src/main/res/layout/activity_material_result.xml b/app/src/main/res/layout/activity_material_result.xml index 04dda61..c86ba87 100644 --- a/app/src/main/res/layout/activity_material_result.xml +++ b/app/src/main/res/layout/activity_material_result.xml @@ -10,6 +10,7 @@ diff --git a/app/src/main/res/layout/material_result_item.xml b/app/src/main/res/layout/material_result_item.xml new file mode 100644 index 0000000..684cdcb --- /dev/null +++ b/app/src/main/res/layout/material_result_item.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/recommend_item_big.xml b/app/src/main/res/layout/recommend_item_big.xml deleted file mode 100644 index 4591238..0000000 --- a/app/src/main/res/layout/recommend_item_big.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file