喜的朋友,請幫助我,我用它有一個標題我所在的地方填充使用JSON數據我的問題是另外一個水平的循環視圖循環認爲,在水平回收視圖我得到只有最後一個值請在下面的代碼中找到。回收站的viewholder內
這裏的佈局,需要
Menu_Item_List.java
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<android.support.v7.widget.AppCompatTextView
android:id="@+id/menu_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="@drawable/cater_bg"
android:padding="4dp"
android:text="Break Fast"
android:textSize="18sp" />
<android.support.v7.widget.RecyclerView
android:id="@+id/menu_item_rv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp" />
</LinearLayout>
Menu.java
public class Menu_Fragment extends Fragment {
@BindView(R.id.menu_rv)
RecyclerView menu_rv;
FastItemAdapter<Menu_List_Item> menu_item_adapter = new FastItemAdapter<>();
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.menu_fragment, container, false);
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ButterKnife.bind(this, view);
menu_rv.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
menu_rv.setAdapter(menu_item_adapter);
menu_list();
}
private void menu_list() {
// String menuurl = Constant.aloourl + "shop_menu&vendor_id=" + getActivity().getIntent().getStringExtra("catergoryid") + "&type=2";
String menuurl = Constant.aloourl + "shop_menu&vendor_id=32&type=2";
Constant.l(menuurl);
AndroidNetworking.get(menuurl).build().getAsJSONObject(new JSONObjectRequestListener() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray menuarray = response.getJSONArray("mlist");
for (int i = 0; i < menuarray.length(); i++) {
JSONObject menuobjarray = menuarray.getJSONObject(i);
Iterator menuiterator = menuobjarray.keys();
while (menuiterator.hasNext()) {
String menuname = (String) menuiterator.next();
Menu_List_Item menulist = new Menu_List_Item();
menulist.setMenuname(menuname);
JSONArray menuarrayname = menuobjarray.getJSONArray(menuname);
for (int j = 0; j < menuarrayname.length(); j++) {
JSONObject menunameobjs = menuarrayname.getJSONObject(j);
Menu_Item_Adapter mealslist = new Menu_Item_Adapter();
mealslist.setMenu_item_id(menunameobjs.getString("mid"));
mealslist.setMenu_item_name(menunameobjs.getString("item"));
mealslist.setMenu_item_price(menunameobjs.getString("price"));
mealslist.setMenu_item_image(menunameobjs.getString("restaurant_subimage"));
menulist.setMenu_adapter(mealslist);
}
menu_item_adapter.add(menulist);
}
}
} catch (JSONException e) {
Constant.l(e.toString());
}
}
@Override
public void onError(ANError anError) {
Constant.l(anError.toString());
}
});
}
}
Menu_Adapter.java
public class Menu_List_Item extends AbstractItem<Menu_List_Item, Menu_List_Item.Menu_List_Item_ViewHolder> {
String menuname;
Menu_Item_Adapter menu_adapter;
public String getMenuname() {
return menuname;
}
public void setMenuname(String menuname) {
this.menuname = menuname;
}
public Menu_Item_Adapter getMenu_adapter() {
return menu_adapter;
}
public void setMenu_adapter(Menu_Item_Adapter menu_adapter) {
this.menu_adapter = menu_adapter;
}
@Override
public Menu_List_Item_ViewHolder getViewHolder(View v) {
return new Menu_List_Item_ViewHolder(v);
}
@Override
public int getType() {
return R.id.menu_item_rv;
}
@Override
public int getLayoutRes() {
return R.layout.menu_list_item;
}
@Override
public void bindView(Menu_List_Item_ViewHolder holder, List<Object> payloads) {
super.bindView(holder, payloads);
holder.menu_name.setText(menuname);
holder.menu_item_rv.setLayoutManager(new LinearLayoutManager(holder.itemView.getContext(), LinearLayoutManager.HORIZONTAL, false));
FastItemAdapter<Menu_Item_Adapter> menu_item_adapters=new FastItemAdapter<>();
menu_item_adapters.add(menu_adapter);
holder.menu_item_rv.setAdapter(menu_item_adapters);
}
public static class Menu_List_Item_ViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.menu_name)
AppCompatTextView menu_name;
@BindView(R.id.menu_item_rv)
RecyclerView menu_item_rv;
public Menu_List_Item_ViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
}
}
}
你可以使用只需要單一的recylerview。在第一個項目視圖的標題和第二項目視圖recylerview中設置項目類型,你可以使用水平滾動視圖。 – Vij
你說了,我可以用兩個版面吧?@Vij –
是bcoz這是更簡單的方法可以 – Vij