在android studio中使用Mysql填充基于国家微调器的城市微调器

时间:2016-03-29 07:04:22

标签: java android android-studio spinner

我是Android应用程序的初学者。 我需要帮助 我在过去4天这样做了

如果我选择孟买,第二个微调器应该显示受尊重的pickup_point_cd(显示4值而非机场值:D)

enter image description here

公共类MainActivity扩展AppCompatActivity实现Spinner.OnItemSelectedListener {

//Declaring an Spinner
public Spinner spinner;
public Spinner spinner1;

//An ArrayList for Spinner Items
public ArrayList<String> students;
public ArrayList<String> students1;


//JSON Array
public JSONArray result;
public JSONArray result1;

//TextViews to display details
private TextView textViewName;
private TextView textViewCourse;
private TextView textViewSession;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //Initializing the ArrayList
    students = new ArrayList<String>();
    students1 = new ArrayList<String>();

    //Initializing Spinner
    spinner = (Spinner) findViewById(R.id.spinner);
    spinner1 = (Spinner) findViewById(R.id.spinner2);


    //Adding an Item Selected Listener to our Spinner
    //As we have implemented the class Spinner.OnItemSelectedListener to this class iteself we are passing this to setOnItemSelectedListener
    spinner.setOnItemSelectedListener(this);
    spinner1.setOnItemSelectedListener(this);

    //Initializing TextViews
    textViewName = (TextView) findViewById(R.id.textViewName);
    textViewCourse = (TextView) findViewById(R.id.textViewCourse);
    textViewSession = (TextView) findViewById(R.id.textViewSession);

    //This method will fetch the data from the URL
    getData();
    getData1();



}

public void getData(){
    //Creating a string request
    StringRequest stringRequest = new StringRequest(Config.DATA_URL,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    JSONObject j = null;
                    try {
                        //Parsing the fetched Json String to JSON Object
                        j = new JSONObject(response);

                        //Storing the Array of JSON String to our JSON Array
                        result = j.getJSONArray(Config.JSON_ARRAY);

                        //Calling method getStudents to get the students from the JSON Array
                        getStudents(result);
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                }
            });

    //Creating a request queue
    RequestQueue requestQueue = Volley.newRequestQueue(this);

    //Adding request to the queue
    requestQueue.add(stringRequest);
}

public void getStudents(JSONArray j) {
    //Traversing through all the items in the json array
    for (int i = 0; i < j.length(); i++) {
        try {
            //Getting json object
            JSONObject json = j.getJSONObject(i);

            //Adding the name of the student to array list
            students.add(json.getString(Config.TAG_USERNAME));
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
}

public void getData1() {
    //Creating a string request
    StringRequest stringRequest = new StringRequest(Config.DATA2_URL,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    JSONObject j = null;
                    try {
                        //Parsing the fetched Json String to JSON Object
                        j = new JSONObject(response);

                        //Storing the Array of JSON String to our JSON Array
                        result1 = j.getJSONArray(Config.JSON_ARRAY2);

                        //Calling method getStudents to get the students from the JSON Array
                        getStudents1(result1);
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                }
            });

    //Creating a request queue
    RequestQueue requestQueue = Volley.newRequestQueue(this);

    //Adding request to the queue
    requestQueue.add(stringRequest);
}

public void getStudents1(JSONArray j) {
    //Traversing through all the items in the json array
    for (int i = 0; i < j.length(); i++) {
        try {
            //Getting json object
            JSONObject json = j.getJSONObject(i);

            //Adding the name of the student to array list
            students1.add(json.getString(Config.TAG_CD));
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

    //Setting adapter to show the items in the spinner
    spinner.setAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_dropdown_item, students));
    spinner1.setAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_dropdown_item, students1));

}

1 个答案:

答案 0 :(得分:0)

首先,您必须制作Web服务或web api,以便从MySQL获取Android应用程序中的微调器所需的数据。之后,您可以通过Web服务获取数据。为2个差异微调器数据制作2个不同的Web服务。供参考,您可以使用本教程.... enter link description here

如果您执行这些操作,我将为您提供有关如何在第一个微调器的选择值上设置第二个微调器数据的代码。 这是代码.....

Remove this lines first..
//Setting adapter to show the items in the spinner
spinner.setAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_dropdown_item, students));
spinner1.setAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_dropdown_item, students1));

并在getData()方法

之后添加这些代码行
ArrayList<String> cityList_final = new ArrayList<String>();
        cityList_final .add("Select Item");
        cityList_final .addAll(students);
 spinner.setAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_dropdown_item, cityList_final ));

        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1,
                                       int pos, long arg3) {

                spinnerSelectedItem= spinner.getItemAtPosition(pos).toString();
if(spinnerSelectedItem.equalsIgnoreCase("Select Item")==false) {                 
// call here your getData1 method and pass spinnerSelectedItem in url to fetch data according to spinnerSelectedItem.//donot call getData1 method in onCreate
                  getData1(spinnerSelectedItem);

            }

                setSecondSpinner();
            }

            public void onNothingSelected(AdapterView<?> arg0) {

            }
        });
public void setSecondSpinner()
{
 ArrayList<String> pickPointList_final = new ArrayList<String>();
    pickPointList_final .add("Select Item");
        pickPointList_final .addAll(students1);

 spinner1.setAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_dropdown_item, pickPointList_final));
    spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                                   int arg2, long arg3) {


            spinnerSelectedItem1= spinner1.getItemAtPosition(arg2).toString();


        }

        public void onNothingSelected(AdapterView<?> arg0) {

        }
    });

}

希望这会对你有帮助.....