Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在android中使用异步任务从webservice加载后在spinner中填充数据_Java_Android_Web Services_Android Asynctask_Android Spinner - Fatal编程技术网

Java 如何在android中使用异步任务从webservice加载后在spinner中填充数据

Java 如何在android中使用异步任务从webservice加载后在spinner中填充数据,java,android,web-services,android-asynctask,android-spinner,Java,Android,Web Services,Android Asynctask,Android Spinner,我想在states数组来自webService之后,在android spinner中填充数据。加载“进度”对话框后,它将在微调器中显示数据 import android.app.ProgressDialog; import android.os.AsyncTask; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGro

我想在states数组来自webService之后,在android spinner中填充数据。加载“进度”对话框后,它将在微调器中显示数据

import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

public class SpinnerExample extends Fragment {

    private static ProgressDialog pleaseWaitDialog;
    private static ProgressDialog pDialog;
    private View rootView;
    private Spinner state_spinner;
    private String[] statesArray;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        rootView = inflater.inflate(R.layout.spinner, container, false);
        state_spinner = (Spinner) rootView.findViewById(R.id.state_spinner);
        SoapAccessTask soapAccessTask = new SoapAccessTask();
        soapAccessTask.execute();
        return rootView;
    }

    private class SoapAccessTask extends AsyncTask<String, Void, String> {
        // Pre execution actions
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(getActivity());
            pDialog.setMessage("Loading State List");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(true);
            pDialog.show();
        }

        @Override
        protected String doInBackground(String... arg0) {
            statesArray = WebService.getStateList();
            return statesArray;
        }

        @Override
        protected void onPostExecute(String result) {
            if (statesArray != null) {
                ArrayAdapter<String> stateAdapter = new ArrayAdapter<String>(getActivity(), R.layout.spinner_item, statesArray);
                stateAdapter
                        .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                state_spinner.setAdapter(stateAdapter);
                pleaseWaitDialog.dismiss();
            } else {
                AlertDialogError.showMessage(getActivity(), "Server Error");
            }
        }
    }
}
下面是我的代码。我在做背景法时出错了。我得到了正确的Web服务响应。但我不会在微调器中显示数据

import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

public class SpinnerExample extends Fragment {

    private static ProgressDialog pleaseWaitDialog;
    private static ProgressDialog pDialog;
    private View rootView;
    private Spinner state_spinner;
    private String[] statesArray;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        rootView = inflater.inflate(R.layout.spinner, container, false);
        state_spinner = (Spinner) rootView.findViewById(R.id.state_spinner);
        SoapAccessTask soapAccessTask = new SoapAccessTask();
        soapAccessTask.execute();
        return rootView;
    }

    private class SoapAccessTask extends AsyncTask<String, Void, String> {
        // Pre execution actions
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(getActivity());
            pDialog.setMessage("Loading State List");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(true);
            pDialog.show();
        }

        @Override
        protected String doInBackground(String... arg0) {
            statesArray = WebService.getStateList();
            return statesArray;
        }

        @Override
        protected void onPostExecute(String result) {
            if (statesArray != null) {
                ArrayAdapter<String> stateAdapter = new ArrayAdapter<String>(getActivity(), R.layout.spinner_item, statesArray);
                stateAdapter
                        .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                state_spinner.setAdapter(stateAdapter);
                pleaseWaitDialog.dismiss();
            } else {
                AlertDialogError.showMessage(getActivity(), "Server Error");
            }
        }
    }
}
导入android.app.ProgressDialog;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.Spinner;
公共类SpinnerExample扩展了片段{
私有静态进程对话框pleaseWaitDialog;
专用静态进程对话框;
私有视图rootView;
私有微调器状态_微调器;
私有字符串[]statesArray;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
rootView=充气机。充气(R.layout.spinner,容器,false);
state\u微调器=(微调器)rootView.findviewbyd(R.id.state\u微调器);
SoapAccessTask SoapAccessTask=新的SoapAccessTask();
soapAccessTask.execute();
返回rootView;
}
私有类SoapAccessTask扩展了AsyncTask{
//执行前行动
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
pDialog=newprogressdialog(getActivity());
pDialog.setMessage(“加载状态列表”);
pDialog.setUndeterminate(假);
pDialog.setCancelable(真);
pDialog.show();
}
@凌驾
受保护的字符串doInBackground(字符串…arg0){
statesArray=WebService.getStateList();
返回状态数组;
}
@凌驾
受保护的void onPostExecute(字符串结果){
if(statesArray!=null){
ArrayAdapter stateAdapter=新的ArrayAdapter(getActivity(),R.layout.spinner_项,statesArray);
状态适配器
.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
state_spinner.setAdapter(stateAdapter);
请查看对话框。解除();
}否则{
显示消息(getActivity(),“服务器错误”);
}
}
}
}

什么是
WebService
?你得到了什么错误?什么是
getStateList()
返回的?Weservice是一个类,其中我解析JSON数据,getStateList()是方法,它将返回状态数组。加载进度对话框后出现错误,它将使应用程序崩溃。