[我正在构建一个显示印度COVID19统计信息的android应用,我从https://api.covid19india.org/data.json获取JSON格式的统计信息,该API也包含各个州的数据,
下面是我要求的Json数组的片段(包含代表每个状态的json对象)>
截至目前,我一次在屏幕上显示整个数据(所有状态),但是我想提供状态名称作为输入,并仅显示该状态的统计信息,例如。在下面的图像中代替示例,我想写一个状态名称,并且必须在单击该按钮时显示该状态的统计信息。
这是mainActivity.java的代码,我正在使用Volley Library从API提取数据
public class MainActivity extends AppCompatActivity { private TextView result; private RequestQueue mq; public String value; int flag = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); result = findViewById(R.id.textView4); Button parse = findViewById(R.id.button); mq = Volley.newRequestQueue(this); EditText text = (EditText)findViewById(R.id.state_ip); value = text.getText().toString(); parse.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { jsonParse(value); **//How do i pass 'value' i.e the state name entered by user to jsonParse** } }); } private void jsonParse(final String value) { Log.d("val_state",value); String url = "https://api.covid19india.org/data.json"; JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { try { JSONArray jsonArray = response.getJSONArray("statewise"); for (int i = 0; i < jsonArray.length(); i++) { JSONObject st = jsonArray.getJSONObject(i); String statename = st.getString("state"); String active = st.getString("active"); String confirmed = st.getString("confirmed"); String deaths = st.getString("deaths"); String recovered = st.getString("recovered"); if(statename.equals(value)) { flag= 1; } statename = "State : " + statename; active = "Active Cases : " + active; confirmed = "Confirmed Cases : " + confirmed; deaths = "Total Deaths : " + deaths; recovered = "Total Recovered : " + recovered; if(flag==1) { flag=0; result.append(statename + "\n" + String.valueOf(active) + "\n" + String.valueOf(confirmed) + "\n" + String.valueOf(deaths) + "\n" + String.valueOf(recovered) + "\n\n\n"); } } } catch (JSONException e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { error.printStackTrace(); } }); mq.add(request); } }
[这里,我想将用户输入的状态值传递给jsonParse()方法,以便我使用接收到的JSON数据检查状态名称并将其附加到TextView,但是当我这样做时,尝试将值记录在jsonParse()方法内,我什么也没得到,为什么会发生,我该如何实现以上内容?
[我正在构建一个显示印度的COVID19统计信息的android应用,我从https://api.covid19india.org/data.json获取JSON格式的统计信息,此API包含单个数据...
您的EditText值是更新的,必须在单击按钮后捕获。