Android 微调器列表器未在片段内部触发

Android 微调器列表器未在片段内部触发,android,httprequest,android-spinner,android-volley,Android,Httprequest,Android Spinner,Android Volley,我在碎片中填充了一个微调器。 但当我按下其中一个项目时,侦听器不工作。 我在xml文件中定义了一个微调器,并尝试将其高度和宽度设置为0 我浏览了所有的互联网,但我无法让它工作 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if(mPageNumber==0){ rootView = (ViewGroup)

我在碎片中填充了一个微调器。 但当我按下其中一个项目时,侦听器不工作。 我在xml文件中定义了一个微调器,并尝试将其高度和宽度设置为0 我浏览了所有的互联网,但我无法让它工作

public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    if(mPageNumber==0){
        rootView = (ViewGroup) inflater.inflate(R.layout.fragment_worker_data_q1, container, false);
        tvr = new TextView[2];
        tvr[0] = (TextView)rootView.findViewById(R.id.responser0);
        tvr[1] = (TextView)rootView.findViewById(R.id.responser1);
        spinner = (Spinner) rootView.findViewById(R.id.spinner1);
        lables = new ArrayList<String>(); //= db.getAllLabels();
        makeJsonObjReq();
        // Creating adapter for spinner
        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(rootView.getContext(),
                android.R.layout.simple_spinner_item, lables);

        // Drop down layout style - 
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        // attaching data adapter to spinner
        spinner.setAdapter(dataAdapter);
        spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> spinner, View container,
                    int pos, long id) {
                tvr[0].setText(spinner.getItemAtPosition(pos).toString());      
            }
            @Override
            public void onNothingSelected(AdapterView<?> arg0) {
                // TODO Auto-generated method stub
            }
        });  
    }
    else if(mPageNumber==1){        
    }
     return rootView;
}
public View onCreateView(布局、充气机、视图组容器、,
Bundle savedInstanceState){
如果(mPageNumber==0){
rootView=(视图组)充气器。充气(R.layout.fragment\u worker\u data\u q1,容器,false);
tvr=新文本视图[2];
tvr[0]=(TextView)rootView.findViewById(R.id.responser0);
tvr[1]=(TextView)rootView.findViewById(R.id.responser1);
微调器=(微调器)rootView.findViewById(R.id.spinner1);
lables=newarraylist();//=db.getAllLabels();
makeJsonObjReq();
//为微调器创建适配器
ArrayAdapter dataAdapter=新的ArrayAdapter(rootView.getContext(),
android.R.layout.simple_微调器(项目、标签);
//下拉式布局样式-
dataAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉项);
//将数据适配器连接到微调器
spinner.setAdapter(dataAdapter);
spinner.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共容器(AdapterView微调器、视图容器、,
内部位置,长id){
tvr[0].setText(spinner.getItemAtPosition(pos.toString());
}
@凌驾
未选择公共无效(AdapterView arg0){
//TODO自动生成的方法存根
}
});  
}
如果(mpagunmber==1){
}
返回rootView;
}
如果我取消makeObjReq()以从服务器获取标签,并手动放置一些标签,它将起作用。但是我需要从我的服务器获取标签。我认为问题在于请求,因为rootView在请求完成之前返回

private void makeJsonObjReq() {
        showProgressDialog();
        RequestQueue queue = MyVolley.getRequestQueue();
        JsonObjectRequest myReq= new JsonObjectRequest(Method.GET,
                                                 "http://10.0.0.3/task_manager/v1/works",
                                                 null, createMyReqSuccessListener(),
                                                 createMyReqErrorListener()) {
         };
         myReq.setTag(TextUtils.isEmpty("tag_json_arry") ? MyVolley.class.getSimpleName() : "tag_json_arry");
         queue.add(myReq);
     }
private Listener<JSONObject> createMyReqSuccessListener() {
    return new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            // TODO Auto-generated method stub
            try {
                JSONArray j = new JSONArray(response.getString("works"));
                int id;
                String name;
                JSONArray array = new JSONArray(j.toString());
                for (int i = 0; i < array.length(); i++) {
                    JSONObject row = array.getJSONObject(i);
                    id = row.getInt("id");
                    name = row.getString("name");
                    lables.add(name);
                }
            } catch (JSONException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
            hideProgressDialog();
        }
    };
} 
private void makeJsonObjReq(){
showProgressDialog();
RequestQueue=MyVolley.getRequestQueue();
JsonObjectRequest myReq=新的JsonObjectRequest(Method.GET,
"http://10.0.0.3/task_manager/v1/works",
null,createMyReqSuccessListener(),
createMyReqErrorListener()){
};
myReq.setTag(TextUtils.isEmpty(“tag_json_arry”)?MyVolley.class.getSimpleName():“tag_json_arry”);
添加(myReq);
}
私有侦听器createMyReqSuccessListener(){
返回新的Response.Listener(){
@凌驾
公共void onResponse(JSONObject响应){
//TODO自动生成的方法存根
试一试{
JSONArray j=newjsonarray(response.getString(“works”);
int-id;
字符串名;
JSONArray数组=新的JSONArray(j.toString());
对于(int i=0;i
makeJsonObjReq()
是一种异步方法,但如果在调用此函数后设置适配器,则此时间标签列表长度将仅为0,因此在获得响应后设置微调器适配器,或者通知适配器
onResponse
方法以更改数据集。

但当我按下其中一个项时,侦听器不起作用,哪一个项目无效?它不适用于一个特定项目,也不适用于所有其他项目?这是你最重要的项目吗?我有3个项目在里面,没有一个项目触发了听众请尝试制作一个
Toast
inside
onnimselected
,并让我知道这个Toast是否有效。想确定是否有问题
tvr[0]
。吐司不起作用。当我调试时,我还在监听器中放了一个断点,但它没有到达。