簡體   English   中英

根據Android中的First Spinner填充Spinner

[英]Populate Spinner Based from First Spinner in Android

朋友! 我有兩個Spinner,數據來自JSON。 我能夠解析數據並顯示到Spinner中。 在第一個Spinner中,有許多節點,其節點數為Details。 因此,我的要求是根據“第一個微調器”的選擇來填充“第二個微調器”。請幫助我

@Override
    protected JSONObject doInBackground(String... args) {

        JSONParser jParser = new JSONParser();

        // Getting JSON from URL
        JSONObject json = jParser.getJSONFromUrl(url);
        return json;
    }
     @Override
     protected void onPostExecute(JSONObject json) {
         pDialog.dismiss();
         try {
                // Getting JSON Array from URL
                android = json.getJSONArray(TAG_OS);
                for(int i = 0; i < android.length(); i++){
                JSONObject c = android.getJSONObject(i);
                c = c.getJSONObject("LearningStandards");

                // Storing  JSON item in a Variable
                String ver = c.getString(TAG_VER);
                /*String name = c.getString(TAG_NAME);
                String api = c.getString(TAG_API);*/




                // Adding value HashMap key => value


                HashMap<String, String> map = new HashMap<String, String>();

                map.put(TAG_VER, ver);
                /*map.put(TAG_NAME, name);
                map.put(TAG_API, api);*/

                oslist.add(map);
                list=(ListView)findViewById(R.id.list);





                ListAdapter adapter = new SimpleAdapter(MainActivity.this, oslist,
                        R.layout.list_v,
                        new String[] { TAG_VER,TAG_NAME, TAG_API }, new int[] {
                                R.id.vers,R.id.name, R.id.api});

                list.setAdapter(adapter);
                list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

                    @Override
                    public void onItemClick(AdapterView<?> parent, View view,
                                            int position, long id) {
                        Toast.makeText(MainActivity.this, "You Clicked at "+oslist.get(+position).get("ref_id"), Toast.LENGTH_SHORT).show();

                    }
                });

                }
        } catch (JSONException e) {
            e.printStackTrace();
        }

使用: spinner.setOnItemSelectedListener

我創建了類別和子類別微調器。 根據類別選擇顯示子類別值。 以下是代碼示例:

    spn_category.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
                    String selection = spn_category.getSelectedItem().toString();
                ArrayAdapter<String> selection_subcat = new ArrayAdapter<String>(ServiceProviderProfileEdit.this,
                        android.R.layout.simple_spinner_dropdown_item, CategoryInfo.getSubCategories(selection));
                spn_subcategory.setAdapter(selection_subcat);
                }

                @Override
                public void onNothingSelected(AdapterView<?> parentView) {
                    // your code here (optional)
                }

            });

希望對您有幫助。

//Answer to your comment:

JSONArray data = jsonObject.getJSONArray("LearningStandards");
ArrayAdapter<String> adapter_standard_title = .... //parse standard_title here
spn_title.setAdapter(adapter_standard_title); //set adapter of standard_titles to spinner
//use setOnItemSelectedListener on spn_title
//in onItemSelected you will receive the clicked category
//you can convert it in string using: 
String selected_title = spn_title.getSelectedItem().toString();
//parse ref_id/other req field based on this selected_title

暫無
暫無

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

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