Android 使用JSON填充微调器
我在用json数据填充微调器时遇到了一个问题。我使用的代码没有返回任何内容。代码如下Android 使用JSON填充微调器,android,json,Android,Json,我在用json数据填充微调器时遇到了一个问题。我使用的代码没有返回任何内容。代码如下 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); primaryid=(Spinner) findViewById(R.id.spinner1); AsyncHttpCl
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();
}
}
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
primaryid=(微调器)findViewById(R.id.spinner1);
AsyncHttpClient usercheck=新建AsyncHttpClient();
get(“URL”,新的AsyncHttpResponseHandler()){
成功时公共无效(字符串响应){
试一试{
JSONObject obj3=新JSONObject(响应);
JSONArray jsonArray3=obj3.getJSONArray(“大众供应商列表”);
name=obj3.getJSONArray(“name”);
int length3=jsonArray3.length();
List listContents3=新的ArrayList(长度3);
对于(int i=0;i=5){
listContents3.add(user3.getString(“供应商名称”);}
}
primaryid=(微调器)findViewById(R.id.spinner1);
setAdapter(新的ArrayAdapter(MainActivity.this,android.R.layout.simple_下拉列表_item_1line,listContents3));
}
捕获(JSONException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
我认为这可能与方法的同步性有关。您正在发送一个异步请求(不知道何时返回)在OnCreate中。这意味着您正在尝试在OnCreate完成后更新UI线程。您必须使用与UI线程连接的某些方法更新UI,如AsyncTask中的OnPostExecute或使用AsyncHttpResponseHandler的类中的OnFinished。显示从服务器响应获取的JSON字符串创建原因在循环中调用适配器?似乎您已经完成了对“primaryid”的引用spinner。但这些都不是问题。在spinner中看到一些数据应该是可以的。你应该在问题中显示JSON字符串。在设置适配器之前,试着打印listContents3列表只是为了调试。JSON字符串不能公开。它是由一家公司提供的。对代码有任何更改吗?这是s要使用的REST方法方法PopulateSuppliersList?iActivationStatusID={iActivationStatusID}用于填充微调器