如何基于名称设置如何从json设置android中的值

时间:2020-01-30 12:36:29

标签: android json

在下面基于类型名称的代码中,您想为旋转器设置picklistvalues。在以下响应中,来自服务器,如果名称等于行业,则将标签/值设置为旋转器

我在下面尝试过这样的代码是我找不到错误的地方

有谁能帮助我解决这个问题

响应:

"fields": [

    {
                    "name": "industry",
                    "label": "Ownership Type",
                    "mandatory": true,
                    "type": {
                        "picklistValues": [
                            {
                                "label": "Proprietor",
                                "value": "Proprietor"
                            },
                            {
                                "label": "Partnership",
                                "value": "Partnership"
                            },
                            {
                                "label": "Pvt Ltd",
                                "value": "Pvt Ltd"
                            },
                            {
                                "label": "Trust",
                                "value": "Trust"
                            },
                            {
                                "label": "Society",
                                "value": "Society"
                            },
                            {
                                "label": "Foundation",
                                "value": "Foundation"
                            },
                            {
                                "label": "Hospital",
                                "value": "Hospital"
                            },
                            {
                                "label": "Private Clinic",
                                "value": "Private Clinic"
                            },
                            {
                                "label": "LLP",
                                "value": "LLP"
                            },
                            {
                                "label": "Limited",
                                "value": "Limited"
                            }
                        ],
                        "defaultValue": "Proprietor",
                        "name": "picklist"
                    },
                    "isunique": false,
                    "nullable": true,
                    "editable": true,
                    "default": "",
                    "headerfield": "0",
                    "summaryfield": "0"
                },

Describe.java:

 private void describe() {

        sessionId = getActivity().getIntent().getStringExtra("sessionId");
        String operation = "describe";
        String module="Accounts";
        final GetNoticeDataService service = RetrofitInstance.getRetrofitInstance().create(GetNoticeDataService.class);

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

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

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

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

                    AccountDescribe accountDescribe = response.body();

                    TypeDetails typeDetails;
                    String success = accountDescribe.getSuccess();

                    if (success.equals("true")) {
                        Results_Account results=accountDescribe.getResult();

//

                        //parse describe details
                        DescribeDetails describeDetails = results.getDescribe();
                        String label = describeDetails.getLabel();
                        String name=describeDetails.getName();

                        //parse fields details
                        ArrayList<Fields> fields = describeDetails.getFields();
                       // Log.e("fields", String.valueOf(fields));
//                        //parse fields information
                        for(Fields field: fields) {
                            String fieldName = field.getName();
                            String fieldLabel = field.getLabel();

                            typeDetails=field.getType();

                            String ind_names=typeDetails.getName();


                            if(ind_names.equals("industry")) {


                                ArrayList<PickListValues> pickListValues = typeDetails.getPicklistValues();
                                for (PickListValues pickListValues1 : pickListValues) {
                                    String pick_label = pickListValues1.getLabel();
                                    String pick_value = pickListValues1.getValue();

                                    picklistvaluesnames.add(pick_value);

                                    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_spinner_item, picklistvaluesnames);
                                    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                                    spinner.setAdapter(adapter);

                                }
                            }


                        }

0 个答案:

没有答案