0
我正在从json获取数据。我已按字母顺序排列国家名称。但是,当我点击微调项目时,我得到项目的工作编号。任何人都可以告诉我如何获得微调项目的排序项目的ID。如何获取微调器的排序项目的ID?
这是我的JSON: -
{
"Status": 1,
"StatusMessage": "Country and Country Area List",
"data": [
{
"CountryID": "1",
"CountryName": "India",
"CountryArea": [
{
"CountryID": "1",
"AreaID": "1",
"AreaName": "Kuwait City(Capital)"
},
{
"CountryID": "1",
"AreaID": "2",
"AreaName": " Hawally"
},
]
},
{
"CountryID": "2",
"CountryName": "Dubai",
"CountryArea": [
{
"CountryID": "2",
"AreaID": "6",
"AreaName": " Jeddah"
},
{
"CountryID": "2",
"AreaID": "7",
"AreaName": " Riyadh"
这是由我从JSON获取数据的方法: -
public void requestDataCountry() {
mProgressDialog.show();
StringRequest countrylistrequest = new StringRequest(Request.Method.GET, GlobalData.COUNTRYLISTURL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
mProgressDialog.dismiss();
final JSONObject jObject = new JSONObject(response);
if (jObject.getString("Status").equals("1")) {
JSONArray jsonArray = jObject.getJSONArray("data");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
mCountryName = jsonObject.getString("CountryName");
mId = jsonObject.getString("CountryID");
mCountryList.add(mCountryName);
Collections.sort(mCountryList);
getCountryId.add(mId);
JSONArray jsonArray1 = jsonObject.getJSONArray("CountryArea");
for (int j = 0; j < jsonArray1.length(); j++) {
JSONObject jsonObject1 = jsonArray1.getJSONObject(j);
String countryAreaId = jsonObject1.getString("CountryID");
mAreaName = jsonObject1.getString("AreaName");
mAreaList.add(mAreaName);
}
}
countryAdapter.notifyDataSetChanged();
} else {
}
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
}
}) {
};
RequestQueue countryqueue = Volley.newRequestQueue(getContext());
countryqueue.add(countrylistrequest);
}
这是我的微调代码: -
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu, menu);
super.onCreateOptionsMenu(menu, inflater);
this.menu = menu;
MenuItem menuItem = menu.findItem(R.id.menu_spinner).setVisible(true);
mCountrySpinner = (Spinner) MenuItemCompat.getActionView(menuItem);
countryAdapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_spinner_dropdown_item, mCountryList);
countryAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mCountrySpinner.setAdapter(countryAdapter);
mCountrySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
mCountrySerachId = getCountryId.get(position);
mEditor.putString(KEY_COUNTRY_ID, mCountrySerachId);
mEditor.commit();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
我的问题是,当我点击微调项目像我点击迪拜(CountryName)根据我的JSON然后我得到ID 1(Coun tryID)。同时我点击迪拜(CountryName)它应该得到id 2(CountryID)。我知道我排序的国家名称的问题,但我没有排序CountryID.then我的问题是我如何排序CountryName根据CountryName。
@ Febi Mathew亲爱的主席先生,您的方法绝对正确。但我想按字母顺序对列表进行排序。您的方法给了我相同的ID,但它没有按字母顺序排列国家名称。所以请告诉我如何按字母顺序排列国家名称,然后给出相同的国家编号。 – LoveAndroid