すべてのタブに同じリストの内容が表示されています。タブ位置に従って対応するカテゴリ項目にアクセスするにはMenufragment.classの助けが必要タブ内のリストビュー項目をタブポジションに変更
期待される結果:最初のタブに4つの子羊のアイテム、2番目のタブに8つの海の食品、3番目のタブの5つのヌードル、7つの卵のアイテム第4のタブでは13個、第5のタブでは13個のベジ料理。
実際の結果:すべてのタブには、13のベジタリアン料理アイテムのリストが表示されています。
主な活動
JSONObject hotels = obj.getJSONObject("Menu");
JSONArray items = hotels.getJSONArray("Items");
for (int j = 0; j < items.length(); j++) {
JSONObject hotel = items.getJSONObject(j);
categoryname = hotel.getString("name");
System.out.println(categoryname);
JSONArray hotelmenu = hotel.getJSONArray(categoryname);
//categoryitems = new ArrayList<List<Menuclass>>(hotelmenu.length());
listitems = new ArrayList<Menuclass>(hotelmenu.length());
List<Menuclass> list = new ArrayList<Menuclass>(hotelmenu.length());
// categoryitems.add(list);
for (int i = 0; i < hotelmenu.length(); i++) {
System.out.println(hotelmenu.length());
JSONObject menuitems = hotelmenu.getJSONObject(i);
itemname = menuitems.getString("name");
itemsprice = menuitems.getString("price");
itemtype = menuitems.getString("veg");
int itemtypeint = Integer.parseInt(itemtype);
// System.out.println(menuitems[i]);
if (itemtypeint == 0) {
list.add(new Menuclass(itemname, itemsprice, R.drawable.nonveg));
// categoryitems.add(Arrays.asList(new Menuclass(itemname,itemtype,R.drawable.nonveg)));
}
else {
list.add(new Menuclass(itemname, itemsprice, R.drawable.vegicon));
// categoryitems.add(Arrays.asList(new Menuclass(itemname, itemtype, R.drawable.vegicon)));
}
listitems=list;
}
// System.out.println(categoryitems);
System.out.println(listitems);
tabLayout.addTab(tabLayout.newTab().setText((categoryname)));
ViewPagerAdapter1 adapter = new ViewPagerAdapter1(getSupportFragmentManager(), items);
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
adapter.notifyDataSetChanged();
}
}
Menufragment.class
public class Menufragment extends android.support.v4.app.Fragment {
Context context;
public Menufragment() {
// Required empty public constructor
}
public static Fragment getInstance(int position) {
Menufragment fragment = new Menufragment();
Bundle bundle = new Bundle();
bundle.putInt("position", position);
fragment.setArguments(bundle);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.activity_menu1, container, false);
int position = getArguments().getInt("position", 0);
// set your list base on position
// list 01x
ListView listview = (ListView) view.findViewById(R.id.Listview1);
System.out.println(MenumainActivity.listitems);
***MenuViewAdapter listViewAdapter = new MenuViewAdapter(getActivity(), MenumainActivity.listitems);***
listview.setAdapter(listViewAdapter);
return view;
}
}
class ViewPagerAdapter1 extends FragmentPagerAdapter {
private JSONArray jsonArray;
public ViewPagerAdapter1(FragmentManager manager, JSONArray jsonArray) {
super(manager);
this.jsonArray = jsonArray;
}
@Override
public Fragment getItem(int position) {
return Menufragment.getInstance(position);
}
@Override
public int getCount() {
return jsonArray.length();
}
}
JSON応答
{ "メニュー":{ "項目":[{ "ID":1、 "コード" : "hot1_sub1_mnu"、 "name": "Mutton"、 "status": "1"、 "Mutton":[{"" id ":1、" code ":" hot1_sub1_mut "、" name ":" Mutton Peper Fry " "100"、 "veg": "0"}、{"id":2、 "code": "hot1_sub2_mut"、 "name": "Mutton Curry"、 "price": "100" "veg": "0"}、{"id":3、 "code": "hot1_sub3_mut"、 "n "100"、 "veg": "0"}、{"id":4、 "code": "hot1_sub4_mut"、 "name": "Mutton Mohalai"、 "Mutton Rogan Josh" 「価格」:「100」、「veg」:「0」}]}、{「id」:2、「code」:「hot1_sub2_mnu」、「name」:「Sea Food」、「status」:「1」、 ""、 "価格": "150"、 "veg": "0"}、{"魚の揚げ物" "id":2、 "code": "hot1_sub2_sf"、 "name": "Chilly Fish"、 "price": "250"、 "veg": "0"}、{"id":3、 "code" "veg": "0"}、{"id":4、 "code": "hot1_sub4_sf"、 "name": "hot1_sub3_sf" "価格": "180"、 "veg": "0"}、{"id":5、 "code": "hot1_sub5_sf"、 "name": "チリプルーン"、 "price" "150"、 "veg": "0"}、 "id":6、 "code": "hot1_sub6_sf"、 "name": "ゴールデンフライドプロー"、 "price": "210"、 "veg" "0"}、{"id":7、 "code": "hot1_sub7_sf"、 "name": "Fish Malabar Curry"、 "price": "300"、 "veg": "0"}、{"id "、" code ":" hot1_sub8_sf "、" name ":"カレーカレー "、" price ":" 130 "、" veg ":" 0 "}]}、{" id ":3、" code " : "hot1_sub3_mnu"、 "name": "Noodels"、 "status": "1"、 "Noodels":[{"" id ":1、" code ":" hot1_sub1_nd "、" name ":" Chicken Noodels " "price": "70"、 "veg": "0"}、{"id":2、 "code": " vegg ":" 0 "}、{" id ":3、" code ":" hot1_sub3_nd "、" name ":" Veg "、" hot1_sub2_nd "、" name ":" Egg Noodles "、" price ":" 60 " "価格": "55"、 "veg": "1"}、{"id":4、 "code": "hot1_sub4_nd"、 "name": "Mix Noodles"、 "price": "80 "、" veg ":" 1 "}、{" id ":5、" code ":" hot1_sub1_nd "、" name ":" Scezwan Chicken Noodles "、" price ":" 60 "、" veg ":" 0 "}"} "}"、 "コード": "hot1_sub4_mnu"、 "名前": "卵"、 "ステータス": "1"、 "卵":[{"" id ":1、" code " "veg": "0"}、{"id":2、 "code": "hot1_sub2_egg"、 "name": "hot1_sub1_egg" "価格": "20"、 "veg": "0"}、{"id":3、 "code": "hot3_sub3_egg"、 "name": "Masala Omlete"、 "price" "25"、 "veg": "0"}、{"id":4、 "code": "hot3_sub4_egg"、 "name": "Fried Egg(2 nos)"、 "price": "20" "veg": "0"}、{"id":5、 "code": "hot1_sub5_egg"、 "name": "Boiled Egg(2 nos)"、 "price": "20"、 "veg": "0 "" id ":6、" code ":" hot1_sub6_egg "、" name ":" Egg Podimas "、" price ":" 25 "、" veg ":" 0 "}、{" id ":7 "code": "hot1_sub7_egg"、 "name": "Egg Curry/Masala"、 "price": "50"、 "veg": "0"}]}、{"id":5、 "code" "hot1_sub5_mnu"、 "name": "ベジタリアン料理"、 "status": "1"、 "Vegetarian Dish es ":[{" "id":1、 "code": "hot1_sub1_veg"、 "name": "Veg./ Gobi Man。"価格": "60"、 "veg": "1"}、{"id":2、 "code": "hot1_sub2_veg"、 "name": "Panner Manchoorian Dry"、 "price" 60 "、" veg ":" 1 "}、" id ":3、" code ":" hot1_sub3_veg "、" name ":" Dhal Fry "、" price ":" 50 "、" veg ":" 1 "価格": "50"、 "veg": "1"}、{"id": "}"、 "code": "hot1_sub4_veg"、 "name" 5、 "code": "hot1_sub5_veg"、 "name": "Aloo Gobi Masala"、 "price": "50"、 "veg": "1"}、{"id":6、 "code": "hot1_sub6_veg "、"名前 ":"グリーンピースマサラ "、"価格 ":" 50 "、" veg ":" 1 "}、{" id ":7、" code ":" hot1_sub7_veg "、" name ":" Chenna 「50」、「veg」:「1」}、「id」:8、「code」:「hot1_sub8_veg」、「name」:「かだい野菜」、「price」:「60」 "veg": "1"}、{"id":9、 "code": "hot1_sub9_veg"、 "name": "Veg Kolapuri"、 "price": "60"、 "veg": "1" "" id ":10、" code ":" hot1_sub10_veg "、" name ":" Malai Kuftha Curry "、" price ":" 60 "、" veg ":" 1 "}、{" id ":11 "code": "hot1_sub11_veg"、 "name": "Panner Butter Masala"、 "price": "60"、 "veg": "1"}、{"id":12、 "code": "hot1_sub11_veg" veg ":" 1 "}、{" id ":13、" code ":" hot1_sub12_veg "、" name ":"ボイルド "、"名前 ":"マッシュルームドライ/グレイビー "、"価格 " 「野菜」、「価格」:「50」、「ve G ":" 1 "}]}]}、" ステータス ":" 真 "}
3つのタブに3つの断片がありますか? –
いいえ。単一のフラグメントです。タブが動的に作成されるため、 – Ana
のカテゴリ数に基づいて作成する必要があります.Jsonレスポンスを共有しますか? –