首页 > 解决方案 > 未连接适配器;跳过布局和 org.json.JSONException:Java.lang.String 类型的连接值无法转换为 JSONArray

问题描述

这里使用 JSON 和 volley 库从 MYSQL 服务器(WAMP)获取数据。如何将列表的行 ID (MYSQL) 传递给另一个活动,例如当用户单击时,它会从服务器获取数据并将其显示在另一个活动中?我花了 2 天时间找到有问题的解决方案.

    StringRequest stringRequest = new StringRequest(Request.Method.GET, URL_PRODUCTS,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {

                    try {

                        JSONArray array = new JSONArray(response);

                        for (int i = 0; i < array.length(); i++) {
                            JSONObject product = array.getJSONObject(i);
                            Product product1=new Product();

                            product1.setName(product.getString("name"));
                            product1.setDescription(product.getString("description"));
                            productList.add(product1);

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

                    },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Toast.makeText(getBaseContext(), error.toString(), Toast.LENGTH_SHORT).show();

                    }
            });

    //adding our stringrequest to queue
    Volley.newRequestQueue(this).add(stringRequest);
} private void setuprecyclerview(List<Product> productList) {
    myadapter = new ProductAdapter(this,productList) ;
    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    recyclerView.setAdapter(myadapter);
}

这是PHP语句

$stmt = $conn->prepare("SELECT domainname.name,domaindescription.description FROM(domainname,domaindescription WHERE domainname.id= domaindesriptionc.id_fk");

标签: phpandroid

解决方案


所以你希望上面的数据项 ID 传入另一个 Activity 在上面的代码中,首先在 productHolder 中添加ID,同时在 RecycleView 中解析 Now 时 onBindHolder()点击 item 然后点击

Intent in=new Intnet(context,MyActivity.class);
in.putExtra("id",productList.get(position).getId());
startActivity(in);

MyActivity.java

onCreate() 字符串 id=null;

Intent intent=getIntent();
if(intent!=null)
{
id=intent.getStringExtra("id");
getDataFromAPIWithID(id);
}

推荐阅读