在我的微调器

时间:2017-02-07 13:54:02

标签: android spinner

我收到错误当我在我的微调器上选择数据时,java.lang.String无法转换为java.util.HashMap。我从我的数据库中检索我的微调器中的数据。我正在尝试只有一个类,当我在我的微调器上选择一个项目时,它检查我的数据库中的id以显示过滤器并仅显示所选的id

这是我的微调器选择

     ArrayList<HashMap<String,String>> list1 = new ArrayList<>();

      try
            {
                JSONArray JA = new JSONArray(result);
                JSONObject json;

                s_name = new String[JA.length()];
                s_gender = new String[JA.length()];

                for(int i = 0; i<JA.length(); i++)
                {
                    json        =  JA.getJSONObject(i);
                    s_gender[i] =  json.getString("s_gender");
                    s_name[i]   =  json.getString("s_name");
                }
                list1.add("All");
                for(int i = 0; i<s_name.length; i++)
                {
                    list1.add(s_name[i] + " "+s_gender[i]);
                }



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


  ArrayList<HashMap<String,String>> spinner =  new ArrayList<Object>(Games.this, layout.simple_spinner_dropdown_item, s_name);
        spinner1.setAdapter((SpinnerAdapter) spinner);
        spinner1.setSelection(0);
        spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                Intent intent = null;
                switch (position) {
                    case 1:
                        intent = new Intent(getApplication(), Basketball.class);
                        HashMap<Object, Object> map = (HashMap)parent.getItemAtPosition(position);
                        String news_id = map.get(Config.TAG_news_id).toString();
                        String title = map.get(Config.TAG_title).toString();
                        String content = map.get(Config.TAG_content).toString();
                        String n_date = map.get(Config.TAG_n_date).toString();
                        intent.putExtra(Config.News_id,news_id);
                        intent.putExtra(Config.Title,title);
                        intent.putExtra(Config.Content,content);
                        intent.putExtra(Config.N_date,n_date);
                        startActivity(intent);
                        break;

我在这里得到错误说arraylist不能应用于java.lang.string

(Games.this, layout.simple_spinner_dropdown_item, s_name);
list1.add("All");
            for(int i = 0; i<s_name.length; i++)
            {
                list1.add(s_name[i] + " "+s_gender[i]);
            }

2 个答案:

答案 0 :(得分:0)

//删除此行 list1.add("All");

使用它。

          HashMap<String,String> stringHashMap=new HashMap<>();
            for(int i = 0; i<s_name.length; i++)
            {
               stringHashMap.put(s_name[i],s_gender[i]);
                list1.add(stringHashMap);
            }

 ArrayList<String> spinnerArray=new ArrayList<>();
        Map<String, String> map = stringHashMap;
        for (Map.Entry<String, String> entry : map.entrySet()) {
            spinnerArray.add(entry.getKey());
        }
        ArrayAdapter<String> spinner = new ArrayAdapter<String>(Games.this, layout.simple_spinner_dropdown_item, spinnerArray);
        spinner1.setAdapter(spinner);
        spinner1.setSelection(0);

答案 1 :(得分:0)

    list1.add(s_name[i] + " "+s_gender[i]);

这是一个错误,因为list1是HASHMAP的ArrayList(你在一个arraylist中有很多hashmaps),并且你已经尝试将常用的String添加到这个列表中。可能你想要下一个:

     for(int i = 0; i<s_name.length; i++)
        { 
           HashMap<String, String> hashMap = new HashMap<>();
           hashMap.put(s_name[i], s_gender[i]);
           list1.add(hashMap);
        }