Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我正在尝试用数组中的值填充微调器。我的微调器在执行时没有显示下拉列表!这是我的密码_Java_Android_Android Arrayadapter - Fatal编程技术网

Java 我正在尝试用数组中的值填充微调器。我的微调器在执行时没有显示下拉列表!这是我的密码

Java 我正在尝试用数组中的值填充微调器。我的微调器在执行时没有显示下拉列表!这是我的密码,java,android,android-arrayadapter,Java,Android,Android Arrayadapter,将我的代码放在这里..在类中创建了JSONArray“project”,并尝试将JSONArray中的元素放在Spinner中。但是Spinner没有显示下拉列表 public class MainActivity extends ActionBarActivity { Spinner practiceSpin; Spinner projectSpin; JSONObject projDet; JSONArray projArr; private f

将我的代码放在这里..在类中创建了JSONArray“project”,并尝试将JSONArray中的元素放在Spinner中。但是Spinner没有显示下拉列表

public class MainActivity extends ActionBarActivity {

    Spinner practiceSpin;
    Spinner projectSpin;
    JSONObject projDet;
    JSONArray projArr;


    private final static String JSON_DATA =
          "{" 
                   + "  \"project\": [" 
                   + "    {" 
                   + "      \"id\": \"1\"," 
                   + "      \"name\": \"xxxx\","                   
                   + "    }," 
                   + "    {" 
                   + "      \"id\": \"2\"," 
                   + "      \"name\": \"yyyy\","                                 
                   + "    {" 
                   + "      \"id\": \"3\"," 
                   + "      \"name\": \"zzzz\","
                   + "    {" 
                   + "      \"id\": \"4\"," 
                   + "      \"name\": \"hhhh\","
                   + "  ]" 
                   + "}"; 
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);

       try {
           projDet=new JSONObject(JSON_DATA);
           projArr=projDet.getJSONArray(JSON_DATA); 

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


    practiceSpin=(Spinner) findViewById(R.id.spinnerPractice);
    ArrayAdapter<CharSequence> ar=      ArrayAdapter.createFromResource(this,R.array.practices,android.R.layout.simple_list_item_1);
    ar.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
    practiceSpin.setAdapter(ar);

    projectSpin=(Spinner) findViewById(R.id.spinnerProject);
    ArrayAdapter<String> adapter_proj = new ArrayAdapter<String>(this,R.array.practices, android.R.layout.simple_spinner_item,projArr);   
}

/我无法更正错误。请帮助/

构造函数ArrayAdapterMainActivity,int,int,JSONArray是 未定义错误/

因为ArrayAdapter将列表或数组作为数据源,但您正在尝试传递JSONArray

要显示来自JSONArray的数据,请首先从array到ArrayList获取所有值:

ArrayList<String> arrData=new ArrayList<String>();
for(int n = 0; n < projArr.length(); n++)
{
    JSONObject object = projArr.getJSONObject(n);
     arrData.add(object.optString("name"));
}
在适配器构造函数中使用arrData而不是projArr作为数据源

ArrayList<String> arrData=new ArrayList<String>();
for(int n = 0; n < projArr.length(); n++)
{
    JSONObject object = projArr.getJSONObject(n);
     arrData.add(object.optString("name"));
}