Android 由于响应延迟,无法从JSON填充微调器
我很难从json对象加载数据,因为响应需要时间,在创建respone come视图之前,数据并没有加载到spinner中Android 由于响应延迟,无法从JSON填充微调器,android,json,Android,Json,我很难从json对象加载数据,因为响应需要时间,在创建respone come视图之前,数据并没有加载到spinner中 有谁能对这个问题有更好的想法。我想,如果你能发布你的示例代码,我们将非常有助于帮助你。但无论如何,请尝试下面的方法 尝试: 你应该发布一些代码,但让我告诉你的想法 在Response Listner中,分配json对象并将项目添加到微调器 然后调用适配器类的notifyDatasetChanged()我在出错的地方得到了它。我将一个空数组分配给spinner的适配器,因为响应
有谁能对这个问题有更好的想法。我想,如果你能发布你的示例代码,我们将非常有助于帮助你。但无论如何,请尝试下面的方法 尝试:
你应该发布一些代码,但让我告诉你的想法 在Response Listner中,分配json对象并将项目添加到微调器
然后调用适配器类的
notifyDatasetChanged()
我在出错的地方得到了它。我将一个空数组分配给spinner的适配器,因为响应需要时间从服务器获取数据,在此之前,我将json数组分配给我的数组“mCategoriesNameArray”我只是将这个数组(我将其分配给spinner的适配器)转移到响应侦听器,它工作得很好
mCatAdapter=newarrayadapter(这是android.R.layout.simple_spinner_项,mcategorisnamearray) 如果你做了什么,就把它贴出来。你可以做一件事。首先使微调器不可见。当响应到来时(如果您使用的是AsyncTaskthen on-onPost方法),visible Spinner和notifyDataSetChanged to您的adapter Set adapter to Spinner只有在您拥有数据后才能显示您对json requestm使用的是什么?使用volley进行网络通信
private class FetchDataTask extends AsyncTask<String, Void, String> {
private ProgressDialog dialog = new ProgressDialog(MainActivity.this);
@Override
protected void onPreExecute() {
this.dialog.setMessage("Please wait");
this.dialog.show();
}
@Override
protected String doInBackground(final String... args) {
//Your long waiting job goes here
return resultJson
}
@Override
protected void onPostExecute(final String resultJson) {
if (dialog.isShowing()) {
dialog.dismiss();
}
// Populate your spinner
populateSpinnerWith(resultJson);
}
FetchDataTask task = new FetchDataTask()
task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);