【问题标题】:Populate Spinner Based from First Spinner in Android从 Android 中的第一个 Spinner 填充 Spinner
【发布时间】:2016-01-08 04:21:04
【问题描述】:

朋友们!!我有两个 Spinner,数据来自 JSON。我能够解析数据并显示到 Spinner 中。在第一个 Spinner 中,有多个节点,其细节数为 s。所以我的要求是根据第一个微调器的选择填充第二个微调器..请帮助我

@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相关代码在哪里?
  • 您好,谢谢您的快速响应。实际上,首先我填充到列表中,但现在我想将所有数据显示到微调器中。我能够将数据输入微调器。但我想让它可靠。如果选择了第一个节点,则与该节点相关的所有数据都必须填充到第二个微调器中。请先生帮帮我..
  • 显示在 Spinner 中填充数据的代码
  • 使用spinner的setSelection方法,传递依赖值的位置。请按照@ρяσѕρєяK 的建议提供微调器代码。
  • @ρяσѕρєяK ..如果您有任何想法,请告诉我..我不精通 JSON 和解析,所以我现在正在学习。通过查看示例,我可以编写代码。但是在这个微调器中,主节点必须首先填充,然后当用户根据第二个微调器选择它们时必须填充......请帮助我。我可以给你 JSON 链接

标签: android json android-spinner android-json


【解决方案1】:

使用: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

【讨论】:

  • Thnxx Dsd,selection_subcat 是什么?先生,你有什么例子吗?请让我知道,我会学习...
  • "selection_subcat" 是适配器名称,其中包含要在微调器中显示的值。我正在将此适配器传递给 spn_subcategory。
  • 先生,我给你JSON链接..我想你可以很好地帮助我
  • 它包含很多节点,并且基于它们选择的节点,数据必须填充到另一个 Spinner..
  • 我已经更新了答案。请检查是否有帮助。正如你知道如何解析数据,我省略了那部分,只是建议了流程。
猜你喜欢
  • 1970-01-01
  • 2019-09-09
  • 1970-01-01
  • 1970-01-01
  • 2021-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多