Java 如何使用截击发布布尔值
我试图使用volley库发布布尔值。单击按钮时,布尔值设置为true。然后将布尔值发布到我的php脚本中,以在我的mysql数据库中增加计数器。尝试将请求添加到队列时出错。我做错了什么?这是我的密码Java 如何使用截击发布布尔值,java,android,android-volley,Java,Android,Android Volley,我试图使用volley库发布布尔值。单击按钮时,布尔值设置为true。然后将布尔值发布到我的php脚本中,以在我的mysql数据库中增加计数器。尝试将请求添加到队列时出错。我做错了什么?这是我的密码 holder.custom_button.setOnClickListener(new View.OnClickListener() { int count; @Override public void on
holder.custom_button.setOnClickListener(new View.OnClickListener() {
int count;
@Override
public void onClick(View v) {
count = 0;
superHeroes.get(position).setCount(superHeroes.get(position).getCount() + 1);
holder.txtCount.setText(superHeroes.get(position).getCount() + "");
final String url = "http://10.0.2.2/likes.php";
isLiked = true;
JSONObject obj = new JSONObject();
try {
obj.put("isLiked", true);
} catch (JSONException e) {
e.printStackTrace();
}
JsonObjectRequest jsObjRequest = new JsonObjectRequest
(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// TODO Auto-generated method stub
}
});
// Access the RequestQueue through your singleton class.
// i am getting error here
customVolleyRequest.getInstance(this).addToRequestQueue(jsObjRequest);
}
});
您不是在发出
POST
请求。你应该这样做:
JsonObjectRequest req = new JsonObjectRequest( Request.Method.POST, url,
new JSONObject(jsonParams),
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
// Handle response
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// Handle Error
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json; charset=utf-8");
return headers;
}
};
AppController.getInstance().addToRequestQueue(req); // AppController is Volley Singleton.
JsonObjectRequest req=新的JsonObjectRequest(Request.Method.POST,url,
新的JSONObject(jsonParams),
新的Response.Listener(){
@凌驾
公共void onResponse(JSONObject响应){
//处理响应
}
},
新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
//处理错误
}
}) {
@凌驾
公共映射getHeaders()引发AuthFailureError{
HashMap headers=新的HashMap();
headers.put(“内容类型”、“应用程序/json;字符集=utf-8”);
返回标题;
}
};
AppController.getInstance().addToRequestQueue(req);//AppController是截击单例。
您使用了
cardapter
,我不知道那是什么。您应该始终将请求对象添加到Volley Singleton
您为volley创建了singleton类吗?布尔值是正确的,您一定缺少volley的singleton类。您应该使用POST
而不是GET
,如下面的JsonObjectRequest request=new JsonObjectRequest(request.Method.POST,url,obj,new Response.Listener()){…
如果您可以对所获得的错误进行堆栈跟踪,那就太好了。net.simplifiedcoding.myfeed.CustomVolleyRequest中的'error'getInstance(android.content.Context)'不能应用于'(anonymous android.view.view.OnClickListener)'我应该用什么来代替“content type”和“application/json;charset=utf-8”?@rohitaryasis您发出json对象请求时,应该使用相同的。但这完全取决于您的后端实现。
'getInstance(android.content.Context)' in 'net.simplifiedcoding.myfeed.CustomVolleyRequest' cannot be applied to '(anonymous android.view.View.OnClickListener)'
JsonObjectRequest req = new JsonObjectRequest( Request.Method.POST, url,
new JSONObject(jsonParams),
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
// Handle response
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// Handle Error
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json; charset=utf-8");
return headers;
}
};
AppController.getInstance().addToRequestQueue(req); // AppController is Volley Singleton.