Java 如果get-volley请求为真(200 ok),则需要从cardview中的drawable更新图像
我有一个应用程序,通过截击检查网站是否正常工作Java 如果get-volley请求为真(200 ok),则需要从cardview中的drawable更新图像,java,android,android-volley,cardview,Java,Android,Android Volley,Cardview,我有一个应用程序,通过截击检查网站是否正常工作 如果发出请求,我可以记录请求是否成功 我在cardview中显示它时遇到了麻烦 我有一个onBindViewHolder,它填充cardview中的所有元素 onBindViewHolder中有一个“ischeck”函数,用于检查是否发出请求 但由于我使用截击,因此无法从onResponse返回值 public void onResponse(JSONObject response) { Log.
如果发出请求,我可以记录请求是否成功
我在cardview中显示它时遇到了麻烦 我有一个onBindViewHolder,它填充cardview中的所有元素
onBindViewHolder中有一个“ischeck”函数,用于检查是否发出请求
但由于我使用截击,因此无法从onResponse返回值
public void onResponse(JSONObject response) {
Log.d("istrue","yes");
Toast.makeText(context1, "Success: ", Toast.LENGTH_LONG).show();
}
那么如何从onResponse函数中填充cardview呢?由于截取请求是异步进行的(在后台线程中),因此不能简单地返回结果。你需要的是一个倾听者
接口
声明为侦听器活动中实现它
/片段
接口
引用传递给正在截击的类
请求onResponse
,使用响应调用侦听器回调方法
价值观活动的响应,您可以在其中更新回收视图
对于示例代码,您需要一个接口来从web服务获取回调:
public interface ServerCallback {
void onSuccess(String s);
void onError(Exception e);
}
然后,在Web服务类中使用接口:
import android.content.Context;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
public class WebService {
private static WebService ourInstance;
public static WebService getInstance() {
if (ourInstance == null) {
ourInstance = new WebService();
}
return ourInstance;
}
public void sample(Context context, ServerCallback serverCallback) {
Volley.newRequestQueue(context).add(new StringRequest(Request.Method.GET, "Your URL", new Response.Listener<String>() {
@Override
public void onResponse(String response) {
serverCallback.onSuccess(response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
serverCallback.onError(error);
}
}));
}
}
WebService.getInstance().sample(this, new ServerCallback() {
@Override
public void onSuccess(String s) {
// do every thing you want
}
@Override
public void onError(Exception e) {
// handle error response
}
});
}