一旦你已經改變了JSON來
{
"Menu": {
"Items": [
{
"id": 1,
"code": "kd_sub1_mnu",
"name": "Mutton",
"status": "1",
"dishes": [
{
"id": 1,
"code": "hot1_sub1_mut",
"name": "Mutton Peper Fry",
"price": "100",
"veg": "0"
},
{
"id": 2,
"code": "hot1_sub2_mut",
"name": "Mutton Curry",
"price": "100",
"veg": "0"
},
{
"id": 3,
"code": "hot1_sub3_mut",
"name": "Mutton Rogan Josh",
"price": "100",
"veg": "0"
},
{
"id": 4,
"code": "hot1_sub4_mut",
"name": "Mutton Mohalai",
"price": "100",
"veg": "0"
}
]
},
{
"id": 2,
"code": "kd_sub2_mnu",
"name": "Sea Food",
"status": "1",
"dishes": [
{
"id": 1,
"code": "hot1_sub1_sf",
"name": "Fish Fry",
"price": "150",
"veg": "0"
},
{
"id": 2,
"code": "hot1_sub2_sf",
"name": "Chilly Fish",
"price": "250",
"veg": "0"
},
{
"id": 3,
"code": "hot1_sub3_sf",
"name": "Finger Fish",
"price": "350",
"veg": "0"
}
]
},
{
"id": 3,
"code": "kd_sub3_mnu",
"name": "Noodels",
"status": "1",
"dishes": [
{
"id": 1,
"code": "hot1_sub1_nd",
"name": "Chicken Noodels",
"price": "70",
"veg": "0"
},
{
"id": 3,
"code": "hot1_sub3_nd",
"name": "Veg Noodles",
"price": "55",
"veg": "1"
}
]
},
{
"id": 4,
"code": "kd_sub4_mnu",
"name": "Egg",
"status": "1",
"dishes": [
{
"id": 1,
"code": "hot1_sub1_egg",
"name": "Scrambled Egg",
"price": "20",
"veg": "0"
}
]
},
{
"id": 5,
"code": "kd_sub5_mnu",
"name": "Vegetarian Dishes",
"status": "1",
"dishes": [
{
"id": 1,
"code": "hot1_sub1_veg",
"name": "Veg./ Gobi Man.Dry",
"price": "60",
"veg": "1"
},
{
"id": 2,
"code": "hot1_sub2_veg",
"name": "Panner Manchoorian Dry",
"price": "60",
"veg": "1"
}
]
},
{
"id": 6,
"code": "kd_sub6_mnu",
"name": "Tandoor",
"status": "1",
"dishes": [
{
"id": 1,
"code": "hot1_sub1_ta",
"name": "Naan",
"price": "15",
"veg": "0"
},
{
"id": 2,
"code": "hot1_sub2_ta",
"name": "Butter naan",
"price": "20",
"veg": "0"
},
{
"id": 3,
"code": "hot1_sub3_ta",
"name": "Kulcha",
"price": "15",
"veg": "0"
}
]
}
]
},
"status": "true"
}
您可以使用http://www.jsonschema2pojo.org/並粘貼您的JSON對象創建4 Java類爲
public class Menuclass {
@SerializedName("Menu")
@Expose
private Menu menu;
@SerializedName("status")
@Expose
private String status;
public Menu getMenu() {
return menu;
}
public void setMenu(Menu menu) {
this.menu = menu;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
public class Dish {
@SerializedName("id")
@Expose
private Integer id;
@SerializedName("code")
@Expose
private String code;
@SerializedName("name")
@Expose
private String name;
@SerializedName("price")
@Expose
private String price;
@SerializedName("veg")
@Expose
private String veg;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public String getVeg() {
return veg;
}
public void setVeg(String veg) {
this.veg = veg;
}
}
public class Item {
@SerializedName("id")
@Expose
private Integer id;
@SerializedName("code")
@Expose
private String code;
@SerializedName("name")
@Expose
private String name;
@SerializedName("status")
@Expose
private String status;
@SerializedName("dishes")
@Expose
private List<Dish> dishes = null;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public List<Dish> getDishes() {
return dishes;
}
public void setDishes(List<Dish> dishes) {
this.dishes = dishes;
}
}
public class Menu {
@SerializedName("Items")
@Expose
private List<Item> items = null;
public List<Item> getItems() {
return items;
}
public void setItems(List<Item> items) {
this.items = items;
}
}
如果需要,您可以更改類的名稱。
現在只需改變你的onSuccess()
方法如下:
Menuclass menuClassObject;
public void onSuccess(String response) {
menuClassObject = (new Gson()).fromJson(response,Menuclass.class);
}
現在menuClassObject
包含JSON轉換爲類對象的響應。
MenuFragment的OnCreateView:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.activity_tab1, container, false);
ListView listview = (ListView) view.findViewById(R.id.Listview1);
position = getArguments().getInt("position", 0);
MenuViewAdapter listViewAdapter = new MenuViewAdapter(getActivity(), menuClassObject,position);
listview.setAdapter(listViewAdapter);
return view;
}
}
更改您的MenuViewAdapter:
public class MenuViewAdapter extends BaseAdapter {
private LayoutInflater layoutinflater;
private Menuclass menuClass;
private ArrayList<Dish> listStorage;
private Context context;
private int pagerPosition;
public MenuViewAdapter(Context context, Menuclass customMenuClass,int position) {
this.context = context;
layoutinflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
menuClass = customMenuClass;
pagerPosition = position;
listStorage = new ArrayList<>();
listStorage = menuClass.getMenu().getItems().get(position).getDishes();
}
@Override
public int getCount() {
return listStorage.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Dish dish = listStorage.get(position);
//Now Dish class has methods you need. Customize your view here based on the Dish.
}
請分享給MenuViewAdapter –
共享Menuview適配器 – Ana
的代碼是這個JSON是從你沒有訪問服務器創建?我建議將包含「羊肉,海鮮......等等」的json數組更改爲「盤子」。然後可以使用GSON轉換器將此JSON輕鬆轉換爲Java類對象。 http://pastebin.com/UgLDb3NW。一旦你確認我可以共享代碼,其餘如果JSON可以改變 –