【问题标题】:I am getting only last id from mysql database in android json我只从 android json 中的 mysql 数据库中获取最后一个 id
【发布时间】:2017-08-01 18:02:46
【问题描述】:

我正在使用 Android Php Mysql 制作一个在线应用程序。我已经用产品名称填充了列表视图。但是我想在单击它时获取这些项目的 ID。但是当我在android中解析“products_id”时。我只得到最后一个 Product_ID。 这是我的代码:

   try {
                JSONObject obj = new JSONObject(aVoid);
                JSONArray array = obj.getJSONArray("server_response");

                for (int i = 0; i < array.length(); i++) {


                    JSONObject obj2 = array.getJSONObject(i);
                    final int product_id = obj2.getInt("product_id");
                    String product_name = obj2.getString("product_name");
                    arr.add(product_name);
                    ArrayAdapter adapter = new ArrayAdapter(ViewProduct.this, android.R.layout.simple_list_item_1, arr);
                    li_pro.setAdapter(adapter);

                   li_pro.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                       @Override
                       public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {

                       position = product_id;
                          // i = product_id;
                           Toast.makeText(getApplicationContext(), "",Toast.LENGTH_LONG).show();
                       }
                   });
                }

            } catch (Exception ex) {
                Toast.makeText(ViewProduct.this, "" + ex, Toast.LENGTH_LONG).show();
            }

【问题讨论】:

  • 因为您没有将您的 product_id 添加到任何列表中,而是在循环内重新分配 product_id 的值,因此,最后,您获得了您提供的最后一个值循环。
  • 什么也没发生。我在列表视图中填充了项目并成功检索它。但是当我点击任何项目时,我会得到最后一个项目 ID。而且我不想向用户显示“PRODUCT_ID”。

标签: php android mysql json


【解决方案1】:

您正在 for 循环中添加适配器,因此循环中的每个项目都在设置 适配器这就是为什么你只得到项目。 在 for 循环之后设置 Adpater 将解决如下问题。

try {
       JSONObject obj = new JSONObject(aVoid);
       JSONArray array = obj.getJSONArray("server_response");

       for (int i = 0; i < array.length(); i++) {
           JSONObject obj2 = array.getJSONObject(i);
           final int product_id = obj2.getInt("product_id");
           String product_name = obj2.getString("product_name");
           arr.add(product_name);
       }
       ArrayAdapter adapter = new ArrayAdapter(ViewProduct.this, android.R.layout.simple_list_item_1, arr);
       li_pro.setAdapter(adapter);

       li_pro.setOnItemClickListener(new AdapterView.OnItemClickListener() {
               @Override
               public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {

                   position = product_id;
                   // i = product_id;
                   Toast.makeText(getApplicationContext(), "",Toast.LENGTH_LONG).show();
               }
       });

} catch (Exception ex) {
    Toast.makeText(ViewProduct.this, "" + ex, Toast.LENGTH_LONG).show();
}

【讨论】:

  • 我终于找到了解决方案。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-16
  • 1970-01-01
  • 2014-11-18
相关资源
最近更新 更多