php - 未连接适配器;跳过布局和 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");
解决方案
所以你希望上面的数据项 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);
}