Android:根据第一个微调器的选择填充第二个微调器

时间:2016-05-25 15:23:51

标签: android

我怎么能这样做:我的应用程序中有2个Spinners,一个用于Departament,另一个用于Doctor,当我选择Departament spinner中的一个部门时,我希望我的第二个微调器只显示属于该部门的医生。我正在使用MYSQL数据库从两个不同的表中获取数据。我用两个urlconection填充两个表。这是我的代码:

int id_departament;
String[] nume_doctor = null;
 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.programare_online, container, false);

    sp = (Spinner) view.findViewById(R.id.spinner1);
    adapter = new ArrayAdapter<String>(getActivity(), R.layout.spinner1_layout, R.id.txt1, listItems);
    sp.setAdapter(adapter);
    sp.setFocusable(true);
    sp.clearFocus();

    sp2 = (Spinner) view.findViewById(R.id.spinner2);
    adapter2 = new ArrayAdapter<String>(getActivity(), R.layout.spinner2_layout, R.id.txt2, listItems2);
    sp2.setAdapter(adapter2);
    sp2.setFocusable(true);
    sp2.clearFocus();



    return view;

}

   this is the BlackTask


     private class BackTask extends AsyncTask<Void, Void, Void> {
                        ArrayList<String> list;

                        ArrayList<String> list2;



                        protected void onPreExecute() {
                            super.onPreExecute();
                            list = new ArrayList<>();

                            list2 = new ArrayList<>();


                        }

                        protected Void doInBackground(Void... params) {
                            InputStream is = null;
                            String result = "";

                            InputStream is2 = null;
                            String result2 = "";

        so here I open the connection with database





               try {
                                URL url = new URL("http://192.168.1.5/clinicco/departament.php");
                                urlConnection = (HttpURLConnection) url.openConnection(); //here open the connection with database
                                urlConnection.connect();  //here connect to database
                                is = urlConnection.getInputStream();  //here open the stream for reading data from database


                                URL url2 = new URL("http://192.168.1.5/clinicco/doctori.php");
                                urlConnection2 = (HttpURLConnection) url2.openConnection(); 
                 urlConnection2.connect();  //here connect to database
                                is2 = urlConnection2.getInputStream();  //here open the stream for reading data from database
                } catch (IOException e) {
                                e.printStackTrace();
                            }

                                //convert response to string
                                try {
                                    BufferedReader reader = new BufferedReader(new InputStreamReader(is, "utf-8"));
                                    String line = null;
                                    while ((line = reader.readLine()) != null) {
                                        result += line;
                                    }
                                    is.close();

                                    BufferedReader reader2 = new BufferedReader(new InputStreamReader(is2, "utf-8"));
                                    String line2 = null;
                                    while ((line2 = reader2.readLine()) != null) {
                                        result2 += line2;
                                    }
                                    is2.close();




                                    //result=sb.toString();
                                } catch (Exception e) {
                                    e.printStackTrace();
                                }
                                // parse json data

                                try {
                                    JSONArray jArray = new JSONArray(result);
                                    for (int i = 0; i < jArray.length(); i++) {
                                        JSONObject jsonObject = jArray.getJSONObject(i);
                                        //id_departament = jsonObject.getInt("id_departament");
                                        // add departament's name to arraylist
                                        list.add(jsonObject.getString("nume_departament"));

                                    }

                                    JSONArray jArray2 = new JSONArray(result2);
                                    JSONObject jsonObject2=null;
                                    nume_doctor=new String[jArray2.length()];
                                    id_departament = jsonObject2.getInt("id_departament");


                                    for (int i = 0; i < jArray2.length(); i++) {
                                        jsonObject2 = jArray2.getJSONObject(i);
                                        list2.add(jsonObject2.getString("nume_doctor"));
                                        id_departament = jsonObject2.getInt("id_departament");

                                       nume_doctor[i] = jsonObject2.getString("nume_doctor");
                                    }
                                    } catch (JSONException e) {
                                    e.printStackTrace();
                                }
                                return null;
                            }

this is onPostExecute with the OnItemselectedLiSTENER



    protected void onPostExecute(Void result) {
                        listItems.addAll(list);
                        adapter.notifyDataSetChanged();

                        listItems2.addAll(list2);
                        adapter2.notifyDataSetChanged();

            sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                            @Override
                            public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long id) {
            // TODO Auto-generated method stu
                               // sp.getSelectedItem().toString();
                                int pos = sp.getSelectedItemPosition();

                                sp2.setSelection(position);
            }

                            @Override
                            public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub
                            }
            });


                        sp2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

                            @Override
                            public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long arg3) {
            // TODO Auto-generated method stub
                               // sp2.getSelectedItem().toString();
                                sp.setSelection(position);
             }

                            @Override
                            public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub
                            }
                        });
            }
            }

            public void onStart() {
            super.onStart();
            BackTask bt = new BackTask();
            bt.execute();
        }

0 个答案:

没有答案
相关问题