java - com.android.volley.parseerror org.json.jsonexception:java.lang.String 类型的值连接无法转换为 JSONArray
问题描述
我的添加项目代码:
public class carParts extends AppCompatActivity {
ListView list;
JSONArray data;
customAdapter2 cust_adapater;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_car_parts);
list = findViewById(R.id.listviewC);
getdatafromdb();
}
@Override
protected void onResume(){
getdatafromdb();
super.onResume();
}
public void getdatafromdb(){
String url = "http://192.168.1.111/androidProject/getcarparts.php";
RequestQueue queue = Volley.newRequestQueue(this);
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest (Request.Method.GET, url, null, new
Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
data = response;
cust_adapater = new customAdapter2(carParts.this,data);
list.setAdapter(cust_adapater);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error)
{ // TODO: Handle error
Toast.makeText(getApplicationContext(),"Error:"+error.toString(),Toast.LENGTH_SHORT).show();
} });
queue.add(jsonArrayRequest);
}
}
我的 CustomApater 代码:
public class customAdapter2 extends BaseAdapter {
Context con;
JSONArray data;
LayoutInflater inflater;
// constructor
public customAdapter2(Context c, JSONArray data) {
this.con = c;
this.data = data;
inflater = (LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public class Holder {
TextView nametxtv, typetxtv, pricetxtv, quantitytxtv;
ImageView deleteimage;
}
@Override
public int getCount() {
return data.length();
}
@Override
public Object getItem(int i) {
// i is the clicked position and is filled by Android return null;
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
final Holder holder = new Holder();
final View rowView;
rowView = inflater.inflate(R.layout.row, null);
//initialize the fields in the listview row
holder.nametxtv = rowView.findViewById(R.id.tvName);
holder.pricetxtv = rowView.findViewById(R.id.tvprice);
holder.quantitytxtv = rowView.findViewById(R.id.tvquantity);
holder.typetxtv = rowView.findViewById(R.id.tvtype);
holder.deleteimage = rowView.findViewById(R.id.delete);
// fill them with data:
// Data is in the json object that was passed to the constructor
// and we named it "data".
// extract the object from the json array
//optJSONObject() is the same as getJSONObject() but better in case the object is null
// i is the current position, it increments itself
JSONObject obj = data.optJSONObject(i);
try {
holder.nametxtv.setText(obj.getString("name"));
holder.typetxtv.setText(obj.getString("type"));
holder.pricetxtv.setText(obj.getInt("price"));
holder.quantitytxtv.setText(obj.getInt("quantity"));
holder.deleteimage.setTag(obj.getInt("id"));
holder.deleteimage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String url = "http://192.168.1.111/androidProject/deleteitem.php?id=" + holder.deleteimage.
getTag();
RequestQueue queue = Volley.newRequestQueue(con);
StringRequest request = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
// check whether delete was successful or not
// remember that php returns "success" or "fail"
if (response.equals("success")) { // force the listview to refresh
// call onresume in the acitivty again
((carParts) con).onResume();
} else {
Toast.makeText(con, "Delete failed.", Toast.LENGTH_SHORT).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(con, "Error:" + error.toString(), Toast.LENGTH_SHORT).show();
}
});
queue.add(request);
}
});
} catch (JSONException e) {
}
return rowView;
}
}
所以过去几天我一直在研究这个应用程序,每件事都运行顺利,我可以将数据发送到我的数据库,但是当我想取回数据时,我会在标题中出现错误,谁能告诉我问题是什么?看不到代码有什么问题,但仍然无法正常工作
解决方案
推荐阅读
- javascript - 中心对齐猫头鹰旋转木马项目
- mongodb - 在 Spring Data MongoDB 聚合 $project 中表达嵌套字段
- javascript - 我可以从 double v-for 获取对象中的数据吗
- python-3.x - 如何使用 python-telegram-bot 获取最新的 message_id?
- graphql - 如何过滤graphQL一对多关系中的查询?
- python - 如何识别段落中的一系列数字
- ios - 单个 WatchOS App 和 iOS App 之间的通信
- r - 查找带有日期的每年的最小值和最大值
- r - 如何使用 R 考试在 Rnw 文件中进行评论
- r - 使用 gganimate 动画块