使用JSON填充微调器

时间:2015-03-18 07:23:59

标签: android json

我遇到了使用json数据填充微调器的问题。我使用的代码不返回任何内容。代码如下

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    primaryid=(Spinner) findViewById(R.id.spinner1); 

    AsyncHttpClient usercheck=new AsyncHttpClient();
    usercheck.get("URL", new AsyncHttpResponseHandler(){
        public void onSuccess(String response){
            try {
                JSONObject obj3 = new JSONObject(response);
                JSONArray jsonArray3 = obj3.getJSONArray("PopulateSuppliersList");
                 name=obj3.getJSONArray("name");
                int length3 = jsonArray3.length();
                  List<String> listContents3 = new ArrayList<String>(length3);
                  for (int i = 0; i < length3; i++)
                  {
                      JSONObject user3 = jsonArray3.getJSONObject(i);
                      if(user3.getInt("ID")>=5){
                      listContents3.add(user3.getString("SUPPLIER_NAME"));}
                      }
                      primaryid = (Spinner) findViewById(R.id.spinner1);
                      primaryid.setAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_dropdown_item_1line, listContents3));
                  }


             catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

1 个答案:

答案 0 :(得分:0)

我认为这可能与方法同步性有关。您正在OnCreate中发送异步请求(您不知道何时返回)。这意味着您在OnCreate完成后尝试更新UI线程。您必须在某个与UI线程连接的方法中更新UI,例如AsyncTask中的OnPostExecute或您使用AsyncHttpResponseHandler的类中的OnFinished。