Android 由于响应延迟,无法从JSON填充微调器

Android 由于响应延迟,无法从JSON填充微调器,android,json,Android,Json,我很难从json对象加载数据,因为响应需要时间,在创建respone come视图之前,数据并没有加载到spinner中 有谁能对这个问题有更好的想法。我想,如果你能发布你的示例代码,我们将非常有助于帮助你。但无论如何,请尝试下面的方法 尝试: 你应该发布一些代码,但让我告诉你的想法 在Response Listner中,分配json对象并将项目添加到微调器 然后调用适配器类的notifyDatasetChanged()我在出错的地方得到了它。我将一个空数组分配给spinner的适配器,因为响应

我很难从json对象加载数据,因为响应需要时间,在创建respone come视图之前,数据并没有加载到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);