安卓设置Spinner默认选中项

ps:因公司业务逻辑需要,需要将首页展示页面的产品型号在修改页面进行修改操作,所以就涉及到在修改页面中默认选中当前首页选中的spinner子项数值
因个人spinner数据的不同,还有懒,我就直接将主要的设置选中的代码沾上去

   private void initSpiner() {
        jingli = new ArrayList<>();
        xinghao = new ArrayList<>();
        productBeans = new ArrayList<>();
        humanBeans = new ArrayList<>();
        model.ledgJiekouEntityMutableLiveData().observe(this, new Observer<LedgJiekouEntity>() {//封装的网络请求
            @Override
            public void onChanged(@Nullable LedgJiekouEntity ledgJiekouEntity) {
                for(int i=0;i<ledgJiekouEntity.getProduct().size();i++){//将所有产品数据设置到spinner中
                    xinghao.add(ledgJiekouEntity.getProduct().get(i).getCinvstd()+ledgJiekouEntity.getProduct().get(i).getCinvname());
                    productBeans.add(new LedgJiekouEntity.ProductBean(ledgJiekouEntity.getProduct().get(i).getI_id(),ledgJiekouEntity.getProduct().get(i).getCinvname()));
                }
                adapter = new ArrayAdapter<String>(RepaireLedgerEdit.this,R.layout.spinneritem,xinghao);
                binding.ledgerEditProduct.setAdapter(adapter);//型号的设置完成

                for(int j=0;j<ledgJiekouEntity.getHuman().size();j++){//设置当前默认选中  -- 重点
                    jingli.add(ledgJiekouEntity.getHuman().get(j).getCpersonname());
                    humanBeans.add(new LedgJiekouEntity.HumanBean(ledgJiekouEntity.getHuman().get(j).getCpersoncode(),ledgJiekouEntity.getHuman().get(j).getCpersonname()));
                }
                jingAdapter = new ArrayAdapter<String>(RepaireLedgerEdit.this,R.layout.spinneritem,jingli);
                binding.ledgerEditJingl.setAdapter(jingAdapter);//经理设置完成

                for(int z=0;z<ledgJiekouEntity.getHuman().size();z++){//经理的默认选中状态
                    if(ledgJiekouEntity.getHuman().get(z).getCpersonname().equals(databeanlist.getPerson())){

                         binding.ledgerEditJingl.setSelection(z,true);
                         currenthuman = ledgJiekouEntity.getHuman().get(z).getCpersoncode();
                    }
                }
                for(int a=0;a<ledgJiekouEntity.getProduct().size();a++){
                    if(databeanlist.getProduct().equals(ledgJiekouEntity.getProduct().get(a).getCinvstd())){
                        binding.ledgerEditProduct.setSelection(a,true);
                        if(currentproduct.isEmpty()){
                            currentproduct="";
                        }else {
                            currentproduct = ledgJiekouEntity.getProduct().get(a).getI_id();
                        }

                    }
                }
                binding.ledgerEditProduct.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {//型号的点击事件
                    @Override
                    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                        productBeanentity = productBeans.get(position);
                        currentproduct = productBeanentity.getI_id();
                    }

                    @Override
                    public void onNothingSelected(AdapterView<?> parent) {

                    }
                });
                binding.ledgerEditJingl.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                    @Override
                    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                        humanBeanentity = humanBeans.get(position);
                        currentproduct = humanBeanentity.getCpersoncode();
                    }

                    @Override
                    public void onNothingSelected(AdapterView<?> parent) {

                    }
                });
            }
        });

    }

我遇到的难题:
我在进行产品数据默认选中的时候,for循环里面的数据就只打印一个,直接导致无法进行默认设置,然后我将 if条件判断的顺序改变了一下 就好了 哎花了我一上午时间没想到会败到这里 ,希望看到这篇文章的你能够有用

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安东尼肉店

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值