【问题标题】:Clear the selected value from android spinner从 android spinner 中清除选定的值
【发布时间】:2015-05-19 11:23:17
【问题描述】:

选中复选框后,将显示微调器;取消选中复选框后,将隐藏微调器。我在下图中展示了这种组合。

我使用下面显示的代码实现了这一点。

halfHalfCB.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {

                if (halfHalfCB.isChecked()) {
                    extraDescriptionHalfSP.setVisibility(View.VISIBLE);
                    textview.setVisibility(View.VISIBLE);
                } else {
                    extraDescriptionHalfSP.setVisibility(View.GONE);
                    textview.setVisibility(View.GONE);
//                  String extraDescriptionHalf = extraDescriptionHalfSP
//                          .getSelectedItem() != null ? extraDescriptionHalfSP
//                          .getSelectedItem().toString() : null;
//                          extraDescriptionHalf = null;
                }
            }

        });

        addToCartButton.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {

                try {
                    String extraDescriptionHalf = extraDescriptionHalfSP
                            .getSelectedItem() != null ? extraDescriptionHalfSP
                            .getSelectedItem().toString() : null;

实际上我的问题是一旦选中复选框,然后用户从微调器中选择一个值,然后用户取消选中该复选框。我想从微调器中清除所选值(或使所选值为空)。我怎样才能做到这一点?从我当前的代码微调器中携带所选项目。

任何帮助将不胜感激。

【问题讨论】:

    标签: android android-studio checkbox android-spinner


    【解决方案1】:

    使用这个

    checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    
            @Override
            public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
    
                if(isChecked){
                    spinner.setVisibility(View.VISIBLE);
                }else{
                    spinner.setVisibility(View.GONE);
                }
            }
        }); 
    

    【讨论】:

      【解决方案2】:

      我认为你可以这样做:

        ...
        else {
                      extraDescriptionHalfSP.setVisibility(View.GONE);
                      extraDescriptionHalfSP.setSelection(-1);
                      textview.setVisibility(View.GONE);
        ...
      

      【讨论】:

        【解决方案3】:

        要从微调器中删除项目,您可以使用:

        myspinner.setAdapter(null);
        

        【讨论】:

        • @modabeckham 这将如何工作.. 微调器仍然可见?
        • 这段代码对我有用。不,它隐藏起来。我正在使用这段代码 extraDescriptionHalfSP.setVisibility(View.GONE); textview.setVisibility(View.GONE); extraDescriptionHalfSP.setAdapter(null);
        • @utility 我犯了一个错误,当我在选择一个值后隐藏微调器时,它使适配器为空,当我打开它时,项目不会加载。维尼修斯给出了完美的答案。所以我必须投票给他。对此感到抱歉。
        • @modabeckham 刚刚显示了一个选项,很高兴您得到了正确的解决方案
        猜你喜欢
        • 1970-01-01
        • 2023-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多