Пожалуйста, приведите пример кода (Android) для заполнения 3 блесен из файла JSON, например (конвертер, зона, код) - PullRequest
0 голосов
/ 03 ноября 2018

У меня есть 3 счетчика, и я хочу проанализировать данные JSON в них. Например, файловая структура JSON имеет Converterno, zoneno и codeid. Поэтому я хочу заполнить все конвертеры нет. в одном блесне и зонено. в другом блесне и аналогично 3 блесне. Я пытаюсь это в Android и пытается разобрать данные из JSON. Пожалуйста помоги. Мой XML-файл в порядке, просто нужна помощь в классе Java, чтобы получить значения для раскрывающегося списка

Вот последний код (Selectcode.java), который я сделал с помощью @ Lucefer

package com.example.com;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.List;

    public class selectcode extends AppCompatActivity {
      String URL = "*url_to_json_php*";
      List<String> converter = new ArrayList<>();
      List<String> zone = new ArrayList<>();
      List<String> codeid = new ArrayList<>();
      JSONObject jsonObject;
      JSONArray jsonArray;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_selectcode);
        try{
            jsonObject=new JSONObject(URL);
            jsonArray=jsonObject.getJSONArray("server_response");
            for (int i=0;i<jsonArray.length();i++){
                jsonObject=jsonArray.getJSONObject(i);
                converter.add(jsonObject.optString("converternumber"));
                zone.add(jsonObject.optString("zonenumber"));
                codeid.add(jsonObject.optString("codeid"));
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
        Spinner spinner1=(Spinner) findViewById(R.id.selectconverter);
        ArrayAdapter<String> adapter1=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item);
        spinner1.setAdapter(adapter1);
        Spinner spinner2=(Spinner) findViewById(R.id.selectzone);
        ArrayAdapter<String> adapter2=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item);
        spinner2.setAdapter(adapter2);
        Spinner spinner3=(Spinner) findViewById(R.id.selectcode);
        ArrayAdapter<String> adapter3=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item);
        spinner3.setAdapter(adapter3);
    }
    }

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Я получил решение на

CountryStateCitySpinner

0 голосов
/ 03 ноября 2018

Вам нужно создать три сниппера в XML-файле, и вы можете передавать данные, как показано ниже

    List<String> areas = new ArrayList<>();
    List<String> schools = new ArrayList<>();
    List<String> classes = new ArrayList<>();
    jsonobject = JSONfunctions.getJSONfromURL("http://ww");

            try {

                jsonarray = jsonobject.getJSONArray("server_response");
                for (int i = 0; i < jsonarray.length(); i++) {
                    jsonobject = jsonarray.getJSONObject(i);
                    areas.add(jsonobject.optString("converternumber"));
                    schools.add(jsonobject.optString("zonenumber"));
                    classes.add(jsonobject.optString("codeid"));
                }
  .......................
  //finally u need to set those three lists to three snippers

    Spinner spinner1 = (Spinner) findViewById(R.id.Spinner1); 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, area);
    adapter.setDropDownViewResource(android.R.layout.simple_spin‌​ner_dropdown_item);
    spinner1.setAdapter(adapter);

    Spinner spinner2 = (Spinner) findViewById(R.id.Spinner2); 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, school);
    adapter.setDropDownViewResource(android.R.layout.simple_spin‌​ner_dropdown_item);
    spinner1.setAdapter(adapter);


    Spinner spinner1 = (Spinner) findViewById(R.id.Spinner3); 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, class);
    adapter.setDropDownViewResource(android.R.layout.simple_spin‌​ner_dropdown_item);
    spinner1.setAdapter(adapter);
...