gpt4 book ai didi

android - 将 JsonArrayRequest 与 setOnItemSelectedListener 结合使用

转载 作者:太空狗 更新时间:2023-10-29 16:30:17 24 4
gpt4 key购买 nike

我正在尝试在 fragment 中调用带有 spinner.setOnItemSelectedListener 的 JsonArrayRequest。但它在这一行给我错误

RequestQueue requestQueue = Volley.newRequestQueue(this);

我试过了

RequestQueue requestQueue = Volley.newRequestQueue(this.getActivity);

newRequestQueue (android.content.Context) in Volley cannot be applied to (annonymous android.widget.AdapterView.OnItemSelectedListener)

但是没有用。

final Spinner type = (Spinner) rootView.findViewById(R.id.spinner);

type.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

final int index = parent.getSelectedItemPosition();
final String item_type = String.valueOf(index);

JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.POST, ITEM_CUSTOMER_MEASUREMENTS, null,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {

try {
JSONObject object = new JSONObject();

String shoulder = object.getString("shoulder");
String arm_hole = object.getString("arm_hole");
String chest_1 = object.getString("chest_1");
String chest_2 = object.getString("chest_2");
String waist = object.getString("waist");
String hip = object.getString("hip");
String slit = object.getString("slit");
String top_length = object.getString("top_length");
String f_neck = object.getString("f_neck");
String b_neck = object.getString("b_neck");
String sleeve_length = object.getString("sleeve_length");
String sleeve_breadth = object.getString("sleeve_breadth");
String sleeve_type = object.getString("sleeve_type");
String hip_size = object.getString("hip_size");
String ankle = object.getString("ankle");
String bottom_length = object.getString("bottom_length");
String knee = object.getString("knee");
String bottom_breadth = object.getString("bottom_breadth");
String thigh = object.getString("thigh");
String description = object.getString("description");

Log.d("response", "onResponse: " +shoulder +arm_hole +chest_1 +chest_2 +hip +slit +top_length +f_neck +b_neck +sleeve_length
+sleeve_breadth +sleeve_type +hip_size +ankle +bottom_length +knee +bottom_breadth +thigh +description);

SharedPreferences sharedPreferences = getActivity().getSharedPreferences("itemDetails", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("shoulder", shoulder);
editor.putString("arm_hole", arm_hole);
editor.putString("chest_1", chest_1);
editor.putString("chest_2", chest_2);
editor.putString("waist", waist);
editor.putString("hip", hip);
editor.putString("slit", slit);
editor.putString("top_length", top_length);
editor.putString("f_neck", f_neck);
editor.putString("b_neck", b_neck);
editor.putString("sleeve_length", sleeve_length);
editor.putString("sleeve_breadth", sleeve_breadth);
editor.putString("sleeve_type", sleeve_type);
editor.putString("hip_size", hip_size);
editor.putString("ankle", ankle);
editor.putString("bottom_length", bottom_length);
editor.putString("bottom_breadth", bottom_breadth);
editor.putString("knee", knee);
editor.putString("thigh", thigh);
editor.putString("description", description);
editor.apply();

} catch (JSONException e) {
e.printStackTrace();
}

}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {

}
}){
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String,String> headers = new HashMap<>();
headers.put("Authorization", api_token);
headers.put("X-Request-ID", cust_id);
headers.put("X-Requested-With", item_type);
return headers;
}
};

//Creating request queue
RequestQueue requestQueue = Volley.newRequestQueue(this);

//Adding request to the queue
requestQueue.add(jsonArrayRequest);

final SharedPreferences sharedPrefer = getActivity().getSharedPreferences("itemDetails", Context.MODE_PRIVATE);
final String arm_hole = sharedPrefer.getString("arm_hole","");
final String chest_1 = sharedPrefer.getString("chest_1","");
final String chest_2 = sharedPrefer.getString("chest_2","");
final String waist = sharedPrefer.getString("waist","");
final String hip = sharedPrefer.getString("hip","");
final String slit = sharedPrefer.getString("slit","");
final String top_length = sharedPrefer.getString("top_length","");
final String f_neck = sharedPrefer.getString("f_neck","");
final String b_neck = sharedPrefer.getString("b_neck","");
final String sleeve_length = sharedPrefer.getString("sleeve_length","");
final String sleeve_breadth = sharedPrefer.getString("sleeve_breadth","");
final String sleeve_type = sharedPrefer.getString("sleeve_type","");
final String hip_size = sharedPrefer.getString("hip_size","");
final String ankle = sharedPrefer.getString("ankle","");
final String bottom_length = sharedPrefer.getString("bottom_length","");
final String bottom_breadth = sharedPrefer.getString("bottom_breadth","");
final String knee = sharedPrefer.getString("knee","");
final String thigh = sharedPrefer.getString("thigh","");
final String shoulder = sharedPrefer.getString("shoulder","");

switch (index){
/*
* Nothing is selected
* */
case 0:
break;
/*
* item1 is selected
* */
case 1:
break;
/*
* item2 is selected
* */
case 2:
break;
/*
* item3 is selected
* */
case 3:
break;
/*
* item4 is selected
* */
case 4:
break;
/*
* item5 is selected
*/
case 5:
break;
/*
* item6 is selected
* */
case 6:
break;
/*
* item7 is selected
* */
case 7:
break;
/*
* item8 is selected
* */
case 8:
/*
* item9 is selected
* */
break;
}

}

@Override
public void onNothingSelected(AdapterView<?> parent) {

}
});

最佳答案

Why did this error come

如果您查看 Volley.newRequestQueue(...) 的语法,它需要一个 Context 类的参数。所以在你这里,android.widget.AdapterView.OnItemSelectedListener 不是 Context 类(即不是从 Context 派生的)。因此,在 android.widget.AdapterView.OnItemSelectedListener 类中,您需要引用 ActivityActivity from Fragment 以传递给方法 Volley.newRequestQueue(...).


So your code would be

RequestQueue requestQueue = Volley.newRequestQueue(ActivityClassName.this);

RequestQueue requestQueue = Volley.newRequestQueue(FragmentClassName.this.getActivity());

Better is to pass Application context as

Volley.newRequestQueue(ActivityClassName.this.getApplicationContext())Volley.newRequestQueue(FragmentClassName.this.getActivity().getApplicationContext());

关于android - 将 JsonArrayRequest 与 setOnItemSelectedListener 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41295531/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com