【问题标题】:Android only displays my 1st database searchAndroid 只显示我的第一个数据库搜索
【发布时间】:2016-02-16 10:48:16
【问题描述】:

我正在尝试创建一个从数据库中获取一些值的应用程序。 我在数据库中查找的值有多个 条目,但在 Android 中它只显示它找到的第一个。我想我只需要 1/2 行,但我不知道什么和在哪里。

private void getData() {
     String qrcode = textView1.getText().toString().trim();
     if (qrcode.equals("")) {
       Toast.makeText(this, "", Toast.LENGTH_LONG).show();
       return;
     }
     loading = ProgressDialog.show(this,"Please wait...","Fetching...",false,false);

     String url = Config.DATA_URL+textView1.getText().toString().trim();

     StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
       @Override
       public void onResponse(String response) {
         loading.dismiss();
         showJSON(response);
       }
     },
         new Response.ErrorListener() {
         @Override
         public void onErrorResponse(VolleyError error) {
             Toast.makeText(SecondActivity.this,error.getMessage().toString(),Toast.LENGTH_LONG).show();
         }
     });

     RequestQueue requestQueue = Volley.newRequestQueue(this);
     requestQueue.add(stringRequest);
 }

 private void showJSON(String response){
     String title="";
     String image = "";
     try {
       JSONObject jsonObject = new JSONObject(response);
       JSONArray result = jsonObject.getJSONArray(Config.JSON_ARRAY);
       JSONObject androidData = result.getJSONObject(0);
       title = androidData.getString(Config.KEY_TITLE);
       image = androidData.getString(Config.KEY_IMAGE);
     } catch (JSONException e) {
       e.printStackTrace();
     }
     textViewResult.setText("Title:\t" + title);//+"\nImagine :\t"+ image);
     Picasso.with(this).load("http://192.168.1.254/2015/380panel/uploads/images/sm/" + image).into(ImageView1);

 }

 @Override
 public void onClick(View v) {
     getData();
 }

【问题讨论】:

  • 您只获取 json 数组中的第一个结果: JSONObject androidData = result.getJSONObject(0); > 标题 = androidData.getString(Config.KEY_TITLE); > 图像 = androidData.getString(Config.KEY_IMAGE);
  • 我只需要用另一个int修改0?
  • 我只需要用另一个 int 修改 0 吗? 那么你仍然会有一个……但不是第一个 - 如果只有一行,则会出现错误...您必须学习编程的基本概念,例如循环... 但我不知道什么&在哪里 - 所以不是学习编程的好地方...
  • 这不是一个询问编程相关问题的论坛吗?我没有要求别人写我的代码,我只是不知道该怎么做;)@Selvin

标签: java android mysql android-studio


【解决方案1】:

您似乎只接受了响应的第一个结果:

JSONObject androidData = result.getJSONObject(0);
title = androidData.getString(Config.KEY_TITLE);
image = androidData.getString(Config.KEY_IMAGE);

你只填充一个文本视图:

textViewResult.setText("Title:\t" + title);//+"\nImagine :\t"+ image);

如果您想查看所有结果,您需要对 jsonArray 中收到的每个 json 对象进行迭代/循环并填充 textview 列表!

循环数组:Android JSONArray looping

【讨论】:

  • 感谢您的回答,但我仍然不知道应该修改什么
  • 你明白为什么需要循环 JSONArray 了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-30
  • 2018-04-10
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
相关资源
最近更新 更多