У меня есть деятельность, которая предоставляет некоторую форму регистрации адреса. Существуют следующие региональные счетчики:
- Счетчик постоянных
- Спиннер Ward
У меня уже есть способ получить данные из JSON, вот Моя цель: "Заполнить счетчик прихода на основе выбранного элемента в счетчике постоянства". Я использую залп для извлечения данных из JSON, вот мой метод получения данных постоянных:
private void constituencyParse(){
String url = "http://172.16.1.218/10143d/public/api/respective-constituency/180/1/10000000";
final JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null,
new com.android.volley.Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray jsonArray = response.getJSONArray("data");
ArrayList<ConstituencyAdapter> constituencySpinners = new ArrayList<ConstituencyAdapter>();
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String constituency = jsonObject.getString("424");
String constituencyId = jsonObject.getString("423");
constituencySpinners.add(new ConstituencyAdapter(constituencyId,constituency));
}
ArrayAdapter<ConstituencyAdapter> spinnerArrayAdapter = new ArrayAdapter<ConstituencyAdapter>(ArmTownDetailsActivity.this,
android.R.layout.simple_spinner_dropdown_item,constituencySpinners);
mSpinnerConstituency.setAdapter(spinnerArrayAdapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new com.android.volley.Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});
mQueue.add(request);
}
Кроме того, вот мой метод получения данных Уорда:
private void wardParse(){
String url = "http://172.16.1.218/10143b/public/api/respective-wards/180";
final JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null,
new com.android.volley.Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray jsonArray = response.getJSONArray("data");
ArrayList<WardSpinner> wardSpinners = new ArrayList<WardSpinner>();
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String ward = jsonObject.getString("431");
String wardId = jsonObject.getString("426");
wardSpinners.add(new WardSpinner(wardId,ward));
}
ArrayAdapter<WardSpinner> spinnerArrayAdapter = new ArrayAdapter<WardSpinner>(ArmTownDetailsActivity.this,
android.R.layout.simple_spinner_dropdown_item,wardSpinners);
mSpinnerWard.setAdapter(spinnerArrayAdapter);
//mSpinner.setAdapter(new ArrayAdapter<String>(TownActivity.this, android.R.layout.simple_spinner_dropdown_item, wardName));
// mConstituency
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new com.android.volley.Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});
mQueue.add(request);
}
и это мой метод ConstituencySpinner setOnItemSelected:
mSpinnerConstituency.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
ConstituencyAdapter constituencyAdapter = (ConstituencyAdapter) parent.getItemAtPosition(position);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
вот мои json данные для ConstituencySpinner от почтальона: обратите внимание, ключ 424 - это имя избирательного округа
{
"data": [
{
"419": 18,
"424": "Garsen"
},
{
"419": 19,
"424": "Galole"
},
{
"419": 20,
"424": "Bura"
}
]
}
, и это мои json данные для WardSpinner от почтальона: обратите внимание, ключ 431 - это имя прихода, а 429 - постоянный_идентификатор (внешний ключ)
{
"data": [
{
"426": 92,
"431": "Kinakomba",
"429": "019"
},
{
"426": 93,
"431": "Mikinduni",
"429": "019"
},
{
"426": 94,
"431": "Chewani",
"429": "019"
},
{
"426": 95,
"431": "Wayu",
"429": "019"
}
]
}
. Спасибо.