Android 如何在改造中使用api获取有限的数据
我可以在android中使用Android 如何在改造中使用api获取有限的数据,android,retrofit2,Android,Retrofit2,我可以在android中使用翻新获取数据,并可以使用适配器在回收视图中设置数据视图。但问题是我不想从api中获取全部数据,我想使用java从api中删除一些数据,这些数据在回收视图中不应该可见 Android studio,java private void getSearchProduct(String str_search_text, String page_no, String limit, final String catid) { final ProgressDialog pr
翻新
获取数据,并可以使用适配器在回收视图
中设置数据视图。但问题是我不想从api中获取全部数据,我想使用java从api中删除一些数据,这些数据在回收视图中不应该可见
Android studio,java
private void getSearchProduct(String str_search_text, String page_no, String limit, final String catid) {
final ProgressDialog progressDialog = new ProgressDialog (this);
if (limit.equalsIgnoreCase ("")) {
progressDialog.show ();
progressDialog.setMessage ("Please wait...");
progressDialog.setCancelable (false);
} else {
progressDialog.setMessage ("Please wait...");
progressDialog.setCancelable (false);
}
if (page_no.equalsIgnoreCase ("")) {
pagenonew = "";
} else {
pagenonew = page_no;
}
Log.e (TAG, "getSearchProduct: catid..............." + catid);
if (catid.equals ("")) {
category_id = catid;
Log.e (TAG, "getSearchProduct: catid" + catid);
}
apiService = ApiUtils.getAPIService ();
apiService.getSearchProduct ("" + latitude, "" + longitude, CustomerID, str_search_text, pagenonew, catid).enqueue (new Callback<Search_Product_Model> () {
@Override
public void onResponse(Call<Search_Product_Model> call, Response<Search_Product_Model> response) {
if (response.isSuccessful ()) {
int status = response.body ().getStatus ();
String meg = response.body ().getMsg ();
if (status == 1) {
serach_product_lists.clear ();
serach_product_lists = response.body ().getProductList ();
/* categoryID = response.body ().getCategory_id ();
Log.e (TAG, "categoryID: categoryID......" + categoryID);*/
Search_Product_Adapter adapter = new Search_Product_Adapter (SearchProduct_Fragment.this, serach_product_lists);
recycler_views_category_offerzone.setAdapter (adapter);
txt_noproduct.setVisibility (View.GONE);
recycler_views_category_offerzone.setVisibility (View.VISIBLE);
} else {
txt_noproduct.setVisibility (View.VISIBLE);
txt_noproduct.setText (meg);
recycler_views_category_offerzone.setVisibility (View.GONE);
}
progressDialog.dismiss ();
} else {
progressDialog.dismiss ();
}
}
@Override
public void onFailure(Call<Search_Product_Model> call, Throwable t){
progressDialog.dismiss ();
}
});
}
private void getSearchProduct(字符串str\u search\u文本、字符串页号、字符串限制、最终字符串catid){
final ProgressDialog ProgressDialog=新建ProgressDialog(此);
if(limit.equalsIgnoreCase(“”){
progressDialog.show();
progressDialog.setMessage(“请稍候…”);
progressDialog.setCancelable(false);
}否则{
progressDialog.setMessage(“请稍候…”);
progressDialog.setCancelable(false);
}
if(页码:相等信号案例(“”){
pagenonew=“”;
}否则{
pagenonew=页码;
}
Log.e(标签“getSearchProduct:catid…………”+catid);
if(catid.equals(“”){
类别id=catid;
Log.e(标签“getSearchProduct:catid”+catid);
}
apiService=ApiUtils.getAPIService();
apiService.getSearchProduct(“+”纬度“+”经度,CustomerID,str_search_text,pagenonew,catid)。排队(新回调(){
@凌驾
公共void onResponse(调用、响应){
if(response.issusccessful()){
int status=response.body().getStatus();
字符串meg=response.body().getMsg();
如果(状态==1){
serach_product_list.clear();
serach_product_lists=response.body().getProductList();
/*categoryID=response.body().getCategory_id();
Log.e(标签“categoryID:categoryID……”+categoryID)*/
Search\u Product\u Adapter Adapter=新的Search\u Product\u适配器(SearchProduct\u Fragment.this,serach\u Product\u列表);
回收器\视图\类别\ offerzone.setAdapter(适配器);
txt_noproduct.setVisibility(View.GONE);
回收器\视图\类别\ offerzone.setVisibility(View.VISIBLE);
}否则{
txt_noproduct.setVisibility(View.VISIBLE);
txt_noproduct.setText(meg);
回收商\视图\类别\ offerzone.setVisibility(View.GONE);
}
progressDialog.disclose();
}否则{
progressDialog.disclose();
}
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
progressDialog.disclose();
}
});
}
我认为您应该将RxJava与改造结合使用(它们真的协同工作得非常好),后者具有运算符take,允许您选择要采取多少结果
Observable.just(1, 2, 3, 4, 5, 6, 7, 8)
.take(4)
.subscribe(new Subscriber<Integer>() {
@Override
public void onNext(Integer item) {
System.out.println("Next: " + item);
}
@Override
public void onError(Throwable error) {
System.err.println("Error: " + error.getMessage());
}
@Override
public void onCompleted() {
System.out.println("Sequence complete.");
}
});
可观察。仅(1,2,3,4,5,6,7,8)
.take(4)
.subscribe(新订户(){
@凌驾
public void onNext(整数项){
System.out.println(“下一步:+项);
}
@凌驾
公共无效onError(可丢弃错误){
System.err.println(“错误:+Error.getMessage());
}
@凌驾
未完成的公共无效(){
System.out.println(“序列完成”);
}
});
有关更多文档,请参阅
用于将改型和RxJAva结合起来
serach_product_list=response.body().getProductList();
用于(数据:serach_产品列表){
如果(//把你的法官代码放在这里)
serach_产品列表。删除(数据)
}
从pojo文件中删除额外的元素只需使用所需的键创建一个pojo类,并删除不需要的所有键。这会解决你的问题。