Ceci est mon apidonnées overridding la précédente
[
{
"id":1,
"name":"Little Angels Higher Secondary School",
"address":"Hattiban",
"district":"Lalitpur",
"country":"Nepal",
"phone":"01-41111111",
"email":"[email protected]",
"website":"wwww.la.com.np",
"institution_type":"Government",
"establishment_date":"15-12-2016",
"admission_open_from":"15-12-2016",
"admission_open_to":"19-12-2016",
"logo":"http:\/\/www.myeducationhunt.com\/logos\/logo1.png",
"active":0,
"created_at":null,
"updated_at":null,
"latitude":27.6514,
"longitude":85.3359,
"fees":[
{
"id":1,
"grade":"1",
"price":12000,
"school_id":1,
"created_at":null,
"updated_at":null
},
{
"id":2,
"grade":"2",
"price":13000,
"school_id":1,
"created_at":null,
"updated_at":null
}
]
},
{
"id":6,
"name":"Baltimore Secondary School",
"address":"Baltimore",
"district":"idk",
"country":"U.S",
"phone":"1111111111111",
"email":"[email protected]",
"website":"www.baltimore.edu.np",
"institution_type":"Private",
"establishment_date":"15-12-2016",
"admission_open_from":"15-12-2016",
"admission_open_to":"20-12-2016",
"logo":"http:\/\/www.myeducationhunt.com\/logos\/logo2.png",
"active":0,
"created_at":null,
"updated_at":null,
"latitude":27.6514,
"longitude":85.3359,
"fees":[
{
"id":9,
"grade":"1",
"price":12000,
"school_id":6,
"created_at":null,
"updated_at":null
},
{
"id":10,
"grade":"2",
"price":12500,
"school_id":6,
"created_at":null,
"updated_at":null
},
{
"id":11,
"grade":"3",
"price":15000,
"school_id":6,
"created_at":null,
"updated_at":null
},
{
"id":12,
"grade":"4",
"price":19000,
"school_id":6,
"created_at":null,
"updated_at":null
}
]
}]
J'analysé ces données dans ma classe d'école:
JsonArrayRequest schoolRequest = new JsonArrayRequest(url,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.d(TAG, response.toString());
hidePDialog();
// Parsing json
for (int i = 0; i < response.length(); i++) {
try {
JSONObject obj = response.getJSONObject(i);
OurSchool ourSchool = new OurSchool();
ourSchool.schoolId = obj.getInt("id");
ourSchool.schoolName = obj.getString("name");
ourSchool.schoolLocation = obj.getString("address");
ourSchool.schoolLogo = obj.getString("logo");
ourSchool.district=obj.getString("district");
ourSchool.country=obj.getString("country");
ourSchool.phone=obj.getString("phone");
ourSchool.email=obj.getString("email");
ourSchool.website=obj.getString("website");
ourSchool.type=obj.getString("institution_type");
ourSchool.estb_date=obj.getString("establishment_date");
ourSchool.admission_start_date=obj.getString("admission_open_from");
ourSchool.admission_end_date=obj.getString("admission_open_to");
ourSchool.latitude=obj.getDouble("latitude");
ourSchool.longitude=obj.getDouble("longitude");
// adding schools to ourSchool list
JSONArray fees=obj.getJSONArray("fees");
List<FeeClass> listFeeClass= new ArrayList<FeeClass>();//by Ahamed
for (int j=0;j<fees.length(); j++){
FeeClass feeClass= new FeeClass();//by Ahamed
JSONObject obj1=fees.getJSONObject(j);
feeClass.setGrade(obj1.getString("grade"));//By Ahamed
feeClass.setFee(obj1.getString("price"));//ByAhamed
listFeeClass.add(feeClass);//by Ahamed
ourSchool.grade=obj1.getString("grade");//you need to remove this line
ourSchool.fee=obj1.getString("price");//you need to remove this line
}
ourSchool.setFeesList(listFeeClass);//by Ahamed
ourSchoolsListItems.add(ourSchool);
} catch (JSONException e) {
e.printStackTrace();
}
}
adapter.notifyDataSetChanged();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
hidePDialog();
}
});
J'ai envoyé ces données à ma classe schooldetail comme
Intent i = new Intent(School.this, SchoolDetails.class);
i.putExtra("school", ourSchoolsListItems.get(position));
startActivity(i);
Et finalement j'ai essayé de récupérer toutes ces données de l'école correspondante comme
ourSchool = (OurSchool) getActivity().getIntent().getSerializableExtra("school");
Tout fonctionne parfaitement bien. Le seul problème est à l'intérieur de l'objet "frais" dans l'API. Je veux afficher tous les détails des frais de la classe correspondante. Mais je viens d'obtenir le détail des frais du dernier objet à l'intérieur des "frais". Par exemple, à l'intérieur du tableau des frais de scolarité du petit ange, je reçois juste l'identifiant, la note et le prix de grade2. Je veux récupérer tous les objets à l'intérieur du tableau des frais. S'il vous plaît aidez.
MISE À JOUR // Par Ahamed
class FeeClass{
String grade,fee;
public void setGrade(String grade){
this.grade=grade;
}
public String getGrade(){
return this.grade;
}
}
AJOUTZ variable dans votre OurSchool classe.
List<FeeClass> feeClassObject= new ArrayList<FeeClass>();
avec getter et setter ainsi
public void setFeesList(List<FeeClass> feeClassObject){
this.feeClassObject=feeClassObject;
}
public List<FeeClass> getFeesList(){
return feeClassObject;
}
Et Consultez votre boucle pour le code
votre 'fee' est un tableau, donc vous devez maintenir un anrraylist de type' 'fee' l'intérieur de chaque OurSchool' objet et ajoutez' objet fee' –
Je n'ai pas d'idée claire sur ce que vous dites. Pourriez-vous s'il vous plaît élaborer. Pouvez-vous s'il vous plaît modifier ma question si possible –
votre code mis à jour. mais c'est pour examen par les pairs. vous pouvez voir le code mis à jour si ce code mis à jour accepté – Noorul