Как отфильтровать список переработчиков в android - PullRequest
0 голосов
/ 25 февраля 2020

Привет в коде, который я использую recyclerview для отображения списка. Я звоню в APi и разыскиваю список. Но в этом списке содержатся данные, связанные с контентом.

Я хочу отфильтровать список и отобразить его в единый элемент списка

Например, элементы списка содержат имя и подробности, а также уникальный номер. Хотите отобразить все содержимое: имя

образец json ответ:

"blocks": [
                        {
                            "label": "Basic Information",
                            "fields": [
                                {
                                    "name": "sales_stage",
                                    "value": "Opportunity",
                                    "label": "Sales Stage",
                                    "uitype": "15",
                                    "type": {
                                        "defaultValue": null
                                    }
                                },
                                {
                                    "name": "potentialname",
                                    "value": "GVN hospital-Falco",
                                    "label": "Opportunity Name",
                                    "uitype": "2",
                                    "type": {
                                        "defaultValue": null
                                    }
                                },
                                {
                                    "name": "assigned_user_id",
                                    "value": {
                                        "value": "19x84",
                                        "label": "Chandra Mouli N"
                                    },
                                    "label": "Assigned To",
                                    "uitype": "53",
                                    "type": {
                                        "defaultValue": {
                                            "value": "19x1",
                                            "label": "Administrator"
                                        }
                                    }
                                },

                                {
                                    "name": "potential_no",
                                    "value": "GW/OPP/100743",
                                    "label": "Opportunity Number",
                                    "uitype": "4",
                                    "type": {
                                        "defaultValue": null
                                    }
                                }
                                {"label": "Products",
                            "fields": [
                                {
                                    "name": "productid",
                                    "value": {
                                        "value": "14x33080",
                                        "label": "CS 30"
                                    },
                                    "label": "Item Name",
                                    "uitype": "10",
                                    "type": {
                                        "defaultValue": null
                                    }
                                },]
                                }
                                ]
                                }]

                                 "blocks": [
                        {
                            "label": "Basic Information",
                            "fields": [
                                {
                                    "name": "sales_stage",
                                    "value": "Opportunity",
                                    "label": "Sales Stage",
                                    "uitype": "15",
                                    "type": {
                                        "defaultValue": null
                                    }
                                },
                                {
                                    "name": "potentialname",
                                    "value": "GVN hospital-Falco",
                                    "label": "Opportunity Name",
                                    "uitype": "2",
                                    "type": {
                                        "defaultValue": null
                                    }
                                },
                                {
                                    "name": "assigned_user_id",
                                    "value": {
                                        "value": "19x84",
                                        "label": "Chandra Mouli N"
                                    },
                                    "label": "Assigned To",
                                    "uitype": "53",
                                    "type": {
                                        "defaultValue": {
                                            "value": "19x1",
                                            "label": "Administrator"
                                        }
                                    }
                                },
                                {
                                    "name": "potential_no",
                                    "value": "GW/OPP/100743",
                                    "label": "Opportunity Number",
                                    "uitype": "4",
                                    "type": {
                                        "defaultValue": null
                                    }
                                }]
                                {"label": "Products",
                            "fields": [
                                {
                                    "name": "productid",
                                    "value": {
                                        "value": "14x33080",
                                        "label": "CS 30"
                                    },
                                    "label": "Item Name",
                                    "uitype": "10",
                                    "type": {
                                        "defaultValue": null
                                    }
                                },]
                                }]

Фактический вывод:

пример: список1: имя: продукт XYZ: 123 список2: имя: продукт XYZ: список ABC3: имя: продукт XYZ: 1234

Ожидаемый результат: список: имя: XYZ продукт: 123, AB c, 1234

Java:

private void fetchJSONForSales(){

        handler.postDelayed(new Runnable() {
            @Override
            public void run() {

                sessionId = getActivity().getIntent().getStringExtra("sessionId");
                String operation = "syncModuleRecords";
                String module = "Potentials";
                String syncToken="";
                String mode="public";
                final GetNoticeDataService service = RetrofitInstance.getRetrofitInstance().create(GetNoticeDataService.class);

                /** Call the method with parameter in the interface to get the notice data*/
                Call<SyncModule> call = service.GetSyncModuleList(operation, sessionId, module,syncToken,mode);

                /**Log the URL called*/
                Log.i("URL Called", call.request().url() + "");

                call.enqueue(new Callback<SyncModule>() {
                    @Override
                    public void onResponse(Call<SyncModule> call, Response<SyncModule> response) {

                        Log.e("response", new Gson().toJson(response.body()));
                        if (response.isSuccessful()) {
                            Log.e("response", new Gson().toJson(response.body()));

                            SyncModule syncModule = response.body();


                            String success = syncModule.getSuccess();

                            if (success.equals("true")) {
                                SyncResults results = syncModule.getResult();

                                Sync sync=results.getSync();

                                ArrayList<SyncUpdated> syncUpdateds=sync.getUpdated();

                                for(SyncUpdated syncUpdated:syncUpdateds){

                                    ArrayList<SyncBlocks> syncBlocks=syncUpdated.getBlocks();
                                    String title = "";
                                    String value = "";
                                    String potentialValue = "";
                                    String potentialNo = "";
                                    String assigned = "";
                                    String contact = "";
                                    String location = "";
                                    String related = "";
                                    String winprobValue = "";
                                    String valueAndQty = "";
                                    String productValue = "";
                                    String quantity = "";
                                    String salesstageValue="";
                                    String employee="";
                                    String leadsource="";
                                    String remark_sales_person="";
                                    String segment="";
                                    String modality="";
                                    String circle="";
                                    String prospect_type="",equ_details="",sale_type="",createdtime="",modifiedtime="",modifiedby="",closingdate="",exp_delivery_date="",pndt="",demo_done="",s_i="",demo_date="",fun_req="",site_read="",
                                            support_person="",support_type="",opportunity_type="",department="",rating="",interest_type="",
                                            txt_adj="",hdnS_H_Amount="",pre_tax_total="",hdnSubTotal="",listprice="",comment="",discount_amount="",tax1="",tax2="",tax3="",lost_reason="",
                                            competition_name="",price_quoted="",general_remark="",description="",termsnconditions="";
                                    String mobie = sharedPreferences.getString("mobiles", null);

                                    for (SyncBlocks syncBlocks1 : syncBlocks) {
                                        String label = syncBlocks1.getLabel();
                                        //Basic Information
                                        if (label.equals("Basic Information")) {
                                            ArrayList<SynFields> synFields = syncBlocks1.getFields();

                                            for (SynFields synFields1 : synFields) {

                                                String name = synFields1.getName();
                                                values = synFields1.getValue();

                                                if (name.equals("sales_stage")) {
                                                    salesstageValue = String.valueOf(values);


                                                } else if (name.equals("potentialname")) {
                                                    potentialValue = String.valueOf(values);


                                                } else if (name.equals("assigned_user_id")) {
                                                    try {
                                                        Gson gson = new Gson();
                                                        String strJson = gson.toJson(values);
                                                        JSONObject jsonObject = new JSONObject(strJson);
                                                        String v = jsonObject.getString("label");
//                                            assigned_tos.add(v);
                                                        assigned = v;
                                                    } catch (Exception ex) {
                                                        Log.e("SalesStageFragment", "Exception is : " + ex.toString());
                                                    }

                                                } else if (name.equals("related_to")) {
                                                    try {
                                                        Gson gson = new Gson();
                                                        String strJson = gson.toJson(values);
                                                        JSONObject jsonObject = new JSONObject(strJson);
                                                        String v = jsonObject.getString("label");
//                                            assigned_tos.add(v);
                                                        related = v;
                                                    } catch (Exception ex) {
                                                        Log.e("SalesStageFragment", "Exception is : " + ex.toString());
                                                    }

                                                } else if (name.equals("contact_id")) {
                                                    try {
                                                        Gson gson = new Gson();
                                                        String strJson = gson.toJson(values);
                                                        JSONObject jsonObject = new JSONObject(strJson);
                                                        String v = jsonObject.getString("label");
                                                        contact = v;
                                                    } catch (Exception ex) {
                                                        Log.e("SalesStageFragment", "Exception is : " + ex.toString());
                                                    }

                                                } else if (name.equals("potential_no")) {
                                                    potentialNo = String.valueOf(values);

                                                } else if (name.equals("location")) {
                                                    location = String.valueOf(values);

                                                }else if (name.equals("employee")) {
                                                    employee = String.valueOf(values);
                                                }else if (name.equals("leadsource")) {
                                                    leadsource = String.valueOf(values);
                                                }else if (name.equals("cf_954")) {
                                                    remark_sales_person = String.valueOf(values);
                                                }else if (name.equals("segment")) {
                                                    segment = String.valueOf(values);
                                                }else if (name.equals("modality")) {
                                                    modality = String.valueOf(values);
                                                }else if (name.equals("circle")) {
                                                    circle = String.valueOf(values);
                                                }


                                            }
                                        } else if (label.equals("Opportunity Details")) {
                                            ArrayList<SynFields> synFields = syncBlocks1.getFields();
                                            for (SynFields synFields1 : synFields) {

                                                String name = synFields1.getName();
                                                values = synFields1.getValue();

                                                if (name.equals("cf_996")) {
                                                    title = String.valueOf(values);
                                                } else if (name.equals("cf_897")) {
                                                    winprobValue = String.valueOf(values);
                                                }else if (name.equals("cf_960")) {
                                                    prospect_type = String.valueOf(values);
                                                }else if (name.equals("cf_1010")) {
                                                    equ_details = String.valueOf(values);
                                                }else if (name.equals("cf_992")) {
                                                    sale_type = String.valueOf(values);
                                                }else if (name.equals("createdtime")) {
                                                    createdtime = String.valueOf(values);
                                                }else if (name.equals("modifiedtime")) {
                                                    modifiedtime = String.valueOf(values);
                                                } else if (name.equals("modifiedby")) {
                                                    try {
                                                        Gson gson = new Gson();
                                                        String strJson = gson.toJson(values);
                                                        JSONObject jsonObject = new JSONObject(strJson);
                                                        String v = jsonObject.getString("label");
                                                        modifiedby = v;
                                                    } catch (Exception ex) {
                                                        Log.e("SalesStageFragment", "Exception is : " + ex.toString());
                                                    }

                                                }else if (name.equals("closingdate")) {
                                                    closingdate = String.valueOf(values);
                                                }else if (name.equals("cf_1000")) {
                                                    exp_delivery_date = String.valueOf(values);
                                                }else if (name.equals("cf_998")) {
                                                    pndt = String.valueOf(values);
                                                }else if (name.equals("demo_done")) {
                                                    demo_done = String.valueOf(values);
                                                }else if (name.equals("cf_903")) {
                                                    s_i = String.valueOf(values);
                                                }else if (name.equals("demo_date")) {
                                                    demo_date = String.valueOf(values);
                                                }else if (name.equals("cf_899")) {
                                                    fun_req = String.valueOf(values);
                                                }else if (name.equals("cf_1002")) {
                                                    site_read = String.valueOf(values);
                                                }else if (name.equals("cf_1004")) {
                                                    support_person = String.valueOf(values);
                                                }else if (name.equals("cf_1006")) {
                                                    support_type = String.valueOf(values);
                                                }else if (name.equals("opportunity_type")) {
                                                    opportunity_type = String.valueOf(values);
                                                }
                                            }
                                        }
                                    }


                                    String rupee = getResources().getString(R.string.Rs);
                                    int paswd = (int) Double.parseDouble(quantity);
                                    String qty=String.valueOf(paswd);
                                    ModelTest modelTest = new ModelTest(potentialValue,related,assigned,contact,location,productValue,rupee.concat(valueAndQty),
                                            potentialNo,mobie,competition_name,circle,closingdate,comment,createdtime,demo_date,demo_done,department
                                            ,description,discount_amount,equ_details,employee,exp_delivery_date,fun_req,general_remark,hdnS_H_Amount,hdnSubTotal,
                                            interest_type,lost_reason,leadsource,listprice,modality,modifiedby,modifiedtime,opportunity_type,pre_tax_total,pndt,price_quoted,prospect_type,
                                            rating,remark_sales_person,sale_type,support_type,s_i,segment,site_read,txt_adj,tax1,tax2,tax3,termsnconditions,winprobValue,support_person,qty,salesstageValue);
                                    if(salesstageValue.equals("Opportunity")){

                                        listSalesStageOpportunity.add(modelTest);
                                        opportunityAdapter.notifyDataSetChanged();

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

Когда вы передаете полный класс модели, например, "modelTest object", адаптеру, добавив его в список listSalesStageOpportunity list. Все, что вам нужно изменить, это ваш макет. Раздвиньте представление переработчика для элемента, содержащего только названия, которые вы хотите показать. Если вы создаете разные текстовые представления в представлении рециркулятора для каждого из данных, вам просто нужно установить Visibility в View.VISIBLE только для имен или сделать это, объявив его в XML макете.

0 голосов
/ 25 февраля 2020

HI вам нужно добавить чек туда, где вы хотите выбрать имя

 if("name").equals.("xyz"){
 append("data yo want to append")
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...