【问题标题】:How to get Focus on EditText after checked CheckBox?检查复选框后如何获得对EditText的关注?
【发布时间】:2016-08-02 18:17:34
【问题描述】:

当用户启动应用程序时,我不想让用户在EditText 中进行编辑。现在我想要的是当用户点击CheckBox 然后用户可以编辑EditText 但下面是我的代码,当我选中复选框时它没有给出焦点。我怎样才能做到这一点?

cbIsGap.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked) {

                    editText1.setFocusable(true);
                    editText1.setClickable(true);
                    editText2.setClickable(true);
                    editText2.setFocusable(true);


                }else {


                    editText1.setFocusable(false);
                    editText1.setClickable(false);
                    editText2.setFocusable(false);
                    editText2.setClickable(false);

                }
            }
        });

【问题讨论】:

    标签: android checkbox android-edittext


    【解决方案1】:
    editText.setFocusableInTouchMode(true); 
    editText.requestFocus();
    

    【讨论】:

    • editText.setFocusableInTouchMode(true); editText.requestFocus();如果选中则添加这两个
    【解决方案2】:

    选中复选框时试试这个

    txtMobile.requestFocus();
    

    【讨论】:

      【解决方案3】:

      你应该使用 EditText.requestFocus(); MethodManager inputManager = (InputMethodManager)editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
      inputManager.showSoftInput(editText, 0);

      【讨论】:

        【解决方案4】:

        根据我对复选框的经验,与checkedChangeListener 相比,onClickListener 提供了可靠的结果。所以我建议像这样使用clickListener

        checkBox.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                       if(checkbox.isChecked())
            {
            txtConsAcNo.setFocusable(true);
                            txtConsAcNo.setClickable(true);
                            txtMeterSrMo.setClickable(true);
                            txtMobile.setFocusable(true);
            }else{
                            txtConsAcNo.setFocusable(false);
                            txtConsAcNo.setClickable(false);
                            txtMeterSrMo.setFocusable(false);
                            txtMeterSrMo.setClickable(false);
            }
                    }
                });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-06-10
          • 1970-01-01
          • 2011-12-22
          • 1970-01-01
          相关资源
          最近更新 更多