简体   繁体   English

如何通过单选按钮在Recycler View中调用API

[英]How Do I call API in recycler View with the help of radio button

today I try to call api to display recycleView with the help of 2(male-female) RadioButton . 今天,我尝试借助2(male-female) RadioButton调用api来显示recycleView

Here 2 RadioButton and behind "choose your gender" recycleView hide 在这里2 RadioButton及其后面“选择性别” recycleView隐藏

在此处输入图片说明

After api call my recycleView Item shown this api调用后,我的recycleView项目显示如下

在此处输入图片说明

"what happing in api:- (i) I have some item(locker) list, which is shown as image “在api中进行了什么封装:-(i)我有一些项目(储物柜)列表,显示为图片

(ii) after api call i have information of some locker(item) which is locked. (ii)在api调用之后,我有一些被锁定的更衣室(物品)的信息。

(iii) I want show locked locker with some diff color and unlocked locker with some diff. (iii)我想用一些差异颜色显示锁定的储物柜,并用一些差异显示锁定的储物柜。 color. 颜色。 (Currently all are in same color, after api call also) (目前所有颜色都是相同的,在api调用之后也是如此)

(iv)Now I want to just check my code and let me understand where am I wrong. (iv)现在,我只想检查我的代码,让我了解我在哪里错了。

(v) I am new in android and want to realize my fault. (v)我是android的新手,想知道自己的错。

 //this is male button code(same female)
    rgGender.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {

            selectedId = rgGender.getCheckedRadioButtonId();
            switch (selectedId) {
                case R.id.rb_male: {
                    booleanLockerList = new ArrayList<>();
                    lockerModels = new ArrayList<LockerModel>();
                    BooleanModelClass booleanLocker = new BooleanModelClass();

                    for (int i = 0; i < malelockerNumber.size(); i++) {
                        booleanLocker.setId("");
                        booleanLocker.setCardid("");
                        booleanLocker.setCby("");
                        booleanLocker.setCdate("");
                        booleanLocker.setJimid("");
                        booleanLocker.setStatus("");
                        booleanLocker.setExittime("");
                        booleanLocker.setIntime("");
                        booleanLocker.setLocker_num("m" + String.valueOf(i+1));
                        booleanLocker.setGender("m");
                        booleanLocker.setKey(false);
                        booleanLockerList.add(booleanLocker);
                    }
                    textHide.setVisibility(View.GONE);
                    gender = "1";
                    String url="http://api.vyosystech.com/safra.php/islockerfree";
                    StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
                            new Response.Listener<String>()
                            {
                                @Override
                                public void onResponse(String response)
                                {
                                    Log.d("Correct API",response);
                                    JSONObject jsonObject=null;
                                    JSONObject jsonArrayObject=null;


                                    try {
                                        jsonObject=new JSONObject(response);
                                        String msg=jsonObject.getString("msg");
                                        String code=jsonObject.getString("code");
                                        if((msg.equals("Locker booked")&&(code.equals("200"))))
                                        {
                                            JSONArray jsonData=jsonObject.getJSONArray("data");
                                            int totalLocker=jsonData.length();
                                            Log.d("totallocker",String.valueOf(totalLocker));
                                            if(totalLocker!=0)
                                            {
                                                for(int i=0;i<totalLocker;i++) {

                                                    jsonArrayObject = jsonData.getJSONObject(i);
                                                    LockerModel lockerModel = new LockerModel();
                                                    lockerModel.setId(jsonArrayObject.getString("id"));
                                                    lockerModel.setCardid(jsonArrayObject.getString("cardid"));
                                                    lockerModel.setIntime(jsonArrayObject.getString("intime"));
                                                    lockerModel.setExittime(jsonArrayObject.getString("exittime"));
                                                    lockerModel.setLocker_num(jsonArrayObject.getString("locker_num"));
                                                    lockerModel.setJimid(jsonArrayObject.getString("jimid"));
                                                    lockerModel.setStatus(jsonArrayObject.getString("status"));
                                                    lockerModel.setCby(jsonArrayObject.getString("cby"));
                                                    lockerModel.setGender(jsonArrayObject.getString("gender"));
                                                    lockerModel.setCdate(jsonArrayObject.getString("cdate"));
                                                    lockerModels.add(lockerModel);
                                                }
                                            }
                                            else
                                            {
                                                Toast.makeText(TempLockerBook.this,totalLocker+" Locker Are Booked",Toast.LENGTH_SHORT).show();
                                            }
                                        }
                                        else
                                        {
                                            Toast.makeText(TempLockerBook.this, msg, Toast.LENGTH_SHORT).show();
                                        }
                                    }

                                    catch(JSONException e)
                                    {
                                        e.printStackTrace();
                                    }


                                        if((lockerModels.size()!=0)&&(booleanLockerList.size()!=0))
                                        {
                                            for(int i=0;i<lockerModels.size();i++)
                                            {

                                                for(int j=0;j<booleanLockerList.size();j++)
                                                {
                                                    if(lockerModels.get(i).getLocker_num().equals(booleanLockerList.get(j).getLocker_num()))
                                                    {
                                                        BooleanModelClass boo = new BooleanModelClass();
                                                        boo.setKey(true);
                                                        booleanLockerList.add(boo);
                                                        break;
                                                    }

                                                }

                                            }
                                            Toast.makeText(TempLockerBook.this, lockerModels.size()+" already booked", Toast.LENGTH_SHORT).show();

                                        }
                                        else if(lockerModels.size()==0) {
                                            Toast.makeText(TempLockerBook.this, "lockerModels list error", Toast.LENGTH_SHORT).show();
                                        }
                                        else if(booleanLockerList.size()==0) {
                                            Toast.makeText(TempLockerBook.this, "booleanlist list error", Toast.LENGTH_SHORT).show();
                                        }
                                        else
                                        {
                                            Toast.makeText(TempLockerBook.this, "other error", Toast.LENGTH_SHORT).show();
                                        }

                                }
                            },
                            new Response.ErrorListener()
                            {
                                @Override
                                public void onErrorResponse(VolleyError error)
                                {
                                    error.printStackTrace();

                                    Toast.makeText(getApplicationContext(),"Something Wrong",Toast.LENGTH_LONG).show();
                                }
                            }){
                        @Override
                        protected Map<String,String> getParams()
                        {
                            Map<String,String> params = new HashMap<String, String>();
                            params.put("key", "2509ncta709s2qo6p54zhewrfev467ha");
                            params.put("jimid", "0");
                            params.put("gender", "1");
                            return params;
                        }

                    };

                    RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
                    requestQueue.add(stringRequest);

                    for (int fill = 0; fill < apiSize; fill++) {
                        for (int fill2 = 0; fill2 < staticSize; fill2++) {
                            if (booleanLockerList.get(fill).getLocker_num().equals(lockerModels.get(fill2).getLocker_num()))
                                ;
                            {
                                booleanLockerList.get(fill2).setKey(true);
                                count++;
                            }
                        }
                    }
                    setAdapterLocation();
                    break;
                }

(vi) now this is my adapter class- (vi)现在这是我的适配器类-

 public void onBindViewHolder(final TempAdapter.ViewHolder holder, final int position) {


    holder.myTextView.setText(lockerNumber.get(position));
    Boolean first1=booleanLockerList.get(position).getKey();
    if((first1))
    {
        holder.click.setBackgroundColor(context.getResources().getColor(R.color.blue));

    }
    else
    {
        holder.click.setBackground(context.getResources().getDrawable(R.drawable.border));
    }

(vii) Here(currently) first adapter run and then api hit. (vii)首先(当前)运行适配器,然后按api。 I din't recognize the error(not error) but not exact working. 我无法识别错误(不是错误),但无法正常工作。

如果要在获取数据后重新绑定适配器,则需要将新数据传递给适配器,然后调用notifyDataSetChanged();。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM