如何做合并两个 json 对象中的 android spinner

标签: json MySQL Android PHP
发布时间: 2017/3/4 3:05:45
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

是否可能从我的数据库中检索数据后将这两个对象合并到一个单一的对象?

这里是我 android 检索代码spinner

spinner1 = (Spinner) findViewById(R.id.sp1);
        final List<String> list1 = new ArrayList<String>();

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

                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_name[i]=json.getString("s_name");

                }
                for(int i = 0; i<JA.length(); i++)
                {
                    json1 = JA.getJSONObject(i);
                    s_gender[i]=json1.getString("s_gender");
                }

                for(int i = 0; i<s_name.length; i++)
                {
                    list1.add(s_name[i]);
                }
                for(int i = 0; i<s_gender.length; i++)
                {
                    list1.add(s_gender[i]);
                }


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

        }

private void spinner_fn() {
        ArrayAdapter<String> spinner = new ArrayAdapter<String>(Games.this, layout.simple_spinner_dropdown_item, list1);
        spinner1.setAdapter(spinner);
}

s_name 检索体育和 s_gender 检索的性别。在我的代码,它显示体育名称但没有性别。想要的什么有点像这个篮球女

谢谢。

解决方法 1:

目前代码将添加所有 sport names 值然后所有 gender

1.) 通过两个数组在一个循环中的迭代。

2) 读取值从两个数组并将其添加为单 String 列表中。

结合 arrasy 作为单个字符串 spinner adapter 喜欢这

 for(int i = 0; i<s_name.length; i++)
    {
       list1.add(s_name[i] + " "+s_gender[i]);
       //         Basketball +" "+ Female
    }

您可以进一步优化您 JSON Parsing 单回路去取你这两个值的代码

 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");    
     }

代码将

class YourActivity extends ..... 
{

    Spinner spinner1;

    // Declare list1 global 
    List<String> list1;

    Somefunction() {
        try
        {
            spinner1 = (Spinner) findViewById(R.id.sp1);

            // initialize list
            list1 = new ArrayList<String>();

            JSONArray JA = new JSONArray(result);
            JSONObject json, json1;

            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_name[i]   = json.getString("s_name");
                s_gender[i] = json.getString("s_gender");
            }

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

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

    private void spinner_fn() {
        ArrayAdapter<String> spinner = new ArrayAdapter<String>(Games.this,  android.R.layout.simple_spinner_item, list1);
        spinner.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner1.setAdapter(spinner);
    }
}
赞助商