我正在从服务器检索数据列表,以使用翻新显示在android的recyclerview中。
检索工作正常,显示了调用的数据,没有问题。
但是问题是,我想检查我获取的数据是否为空,因为我想从此检查中执行一些操作。
我已经尝试过这段代码,但是它会不断检查是否仅 成功完成了请求,不是从服务器带来的JSON数据内容。
getData.enqueue(new Callback<Model>() {
@Override
public void onResponse(Call<Model> call, Response<Model> response) {
if (response.body() != null){
Toast.makeText(getApplicationContext(), "Data is not empty", Toast.LENGTH_LONG).show();
} else {
// want to do some action here after the checking
Toast.makeText(getApplicationContext(), "Data isempty", Toast.LENGTH_LONG).show();
}
someList = new ArrayList<ModelItem>();
someList= response.body().getItem();
adapter= new Adapter(getApplicationContext(), someList);
recyclerView.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
@Override
public void onFailure(Call<Model> call, Throwable t) {
Toast.makeText(getApplicationContext(), getString(R.string.error_connection), Toast.LENGTH_LONG).show();
}
});
我想检查内部响应是否为空,谢谢
答案 0 :(得分:0)
在将Json映射到POJO之前,使用下面的代码。
DD/MM/YYYY
答案 1 :(得分:0)
首先检查响应的有效性,然后检查其内容,然后在该处进行其余工作:
@Override
public void onResponse(Call<Model> call, Response<Model> response) {
if ( response.body() != null){
someList = new ArrayList<ModelItem>();
someList= response.body().getItem();
adapter= new Adapter(getApplicationContext(), someList);
recyclerView.setAdapter(adapter);
adapter.notifyDataSetChanged();
} else {
// want to do some action here after the checking
Toast.makeText(getApplicationContext(), "Data isempty", Toast.LENGTH_LONG).show();
}
}
@Override
public void onFailure(Call<Model> call, Throwable t) {
Toast.makeText(getApplicationContext(), getString(R.string.error_connection), Toast.LENGTH_LONG).show();
}
});
答案 2 :(得分:0)
这可能对您有帮助。
@Override
public void onResponse(Call<String> call, Response<String> response) {
String responseBody = response.body();
if(!responseBody.isEmpty()){
// Create here Json via Gson to POJO classes...
try {
Gson gson = new Gson();
Type type = new TypeToken<List<Model>>() {
}
.getType();
objModel= gson.fromJson(responseBody, type);
} catch (JsonSyntaxException e) {
e.printStackTrace();
}
}
else{
// empty response...
}
}
@Override
public void onFailure(Call<Model> call, Throwable t) {
Toast.makeText(getApplicationContext(), getString(R.string.error_connection), Toast.LENGTH_LONG).show();
}
});