Android 微调器列表器未在片段内部触发
我在碎片中填充了一个微调器。 但当我按下其中一个项目时,侦听器不工作。 我在xml文件中定义了一个微调器,并尝试将其高度和宽度设置为0 我浏览了所有的互联网,但我无法让它工作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)
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
insideonnimselected
,并让我知道这个Toast是否有效。想确定是否有问题tvr[0]
。吐司不起作用。当我调试时,我还在监听器中放了一个断点,但它没有到达。