我遇到了使用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();
}
}
答案 0 :(得分:0)
我认为这可能与方法同步性有关。您正在OnCreate中发送异步请求(您不知道何时返回)。这意味着您在OnCreate完成后尝试更新UI线程。您必须在某个与UI线程连接的方法中更新UI,例如AsyncTask中的OnPostExecute或您使用AsyncHttpResponseHandler的类中的OnFinished。