簡體   English   中英

在 android studio 中使用 Mysql 填充基於國家微調器的城市微調器

[英]Populate city spinner base on country spinner using Mysql in android studio

我是 Android 應用程序的初學者。 我需要幫助 我過去 4 天都在做這件事

如果我選擇孟買,第二個微調器應該顯示受人尊敬的pickup_point_cd(顯示 4 值而不是機場值:D)

在此處輸入圖片說明

公共類 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));

}

首先,您必須制作 Web 服務或 Web api,以便從您的 MySQL 中獲取 android 應用程序中微調器所需的數據。 之后,您可以通過 Web 服務獲取數據。 為 2 個差異微調器數據制作 2 個不同的網絡服務。 作為參考,您可以使用本教程.... 在此處輸入鏈接描述

如果您執行這些操作,我將為您提供有關如何在第一個微調器的選擇值上設置第二個微調器數據的代碼。 這是代碼......

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) {

        }
    });

}

希望能幫到你.....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM