【发布时间】:2020-03-21 13:52:38
【问题描述】:
在我的应用程序中,我有几个 Spinners 填充了 JSON 数据
此应用用于记录工作时间
所以我正在努力解决的问题是,其中一个微调器必须显示与传递给 URL 以进行发布的值不同的值
所以基本上 Spinner 会显示 3 个这样的项目
1 项的示例,
UserID - UserRate - Value
所以它在微调器中看起来像这样
7 - 1 - $200
整个字符串是数组中的 1 个 Json 对象
我使用用户 ID 和第二个数字服务器端将信息发布到表格以记录小时数 所以我只想在微调器下拉列表中显示 $200,但将整行传递给 URL 以进行发布
用于填充微调器的代码
private void LoadUserRatesSpinnerData(String url) {
RequestQueue requestQueue=Volley.newRequestQueue(getApplicationContext());
StringRequest stringRequest=new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonObject=new JSONObject(response);
if (jsonObject.getInt("success") == 1) {
JSONArray jsonArray=jsonObject.getJSONArray("Name");
for (int i=0; i < jsonArray.length(); i++) {
JSONObject jsonObject1=jsonArray.getJSONObject(i);
String rates=jsonObject1.getString("UserRate");
UserRate.add(rates);
}
}
UserRatesSpinner.setAdapter(new ArrayAdapter<>(IntTimeLog.this, android.R.layout.simple_spinner_dropdown_item, UserRate));
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});
int socketTimeout=30000;
RetryPolicy policy=new DefaultRetryPolicy(socketTimeout, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
stringRequest.setRetryPolicy(policy);
requestQueue.add(stringRequest);
}
【问题讨论】:
-
您面临的问题是什么?
-
苦苦挣扎,微调器必须显示与传递给 URL 以进行发布的值不同的值,因此它现在显示 7 - 1 - $200 但我只想显示 $200 但后端价值保持在 7-1-$200 我不知道该怎么做
-
这个“7 - 1 - $200”是否代表单个微调器项目?并且微调器中的所有项目是否都采用相同的格式
-
是的,这是一个单一的微调项目,所有项目都将完全相同,尽管第一个数字,即 7 可能是像 11 这样的两位数,第一个数字是从服务器提取的 USERID,所以它最多有 2 位数字,第二个数字是服务器知道选择女巫的数字,$ 是值
-
你试过我的答案了吗?
标签: android json post android-volley spinner