【问题标题】:Edittext field enable and disable using button in Android在 Android 中使用按钮启用和禁用 Edittext 字段
【发布时间】:2018-05-14 00:49:21
【问题描述】:

我正在开发一个 Android 应用程序,我想在其中使用“编辑”按钮启用和禁用我的 edittext。我正在做类似的事情,如果我按下按钮,它将启用编辑文本,如果我再次按下编辑按钮,它将禁用编辑文本。

我的代码 sn-p 如下所示。在以下情况下第一次尝试它工作正常,但再次点击后它只是返回“click1”。

editText.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                if (clickCount == 0){
                    Toast.makeText(getApplicationContext(), "click0", Toast.LENGTH_SHORT).show();
                    fName.setEnabled(true); 
                    lName.setEnabled(true); 
                    mailText.setEnabled(true);  
                    mobileText.setEnabled(true);    
                }
                clickCount = 1;


  Toast.makeText(getApplicationContext(), "click1", Toast.LENGTH_SHORT).show();
        fName.setEnabled(false);
        lName.setEnabled(false);
        mailText.setEnabled(false);
        mobileText.setEnabled(false);
            }
        });

【问题讨论】:

    标签: android android-edittext onclicklistener


    【解决方案1】:

    试试这个

      editText.setOnClickListener(new View.OnClickListener() {
    
                  @Override
                  public void onClick(View v) {
                  if (clickCount == 0){
                      Toast.makeText(getApplicationContext(), "click0", Toast.LENGTH_SHORT).show();
                      fName.setEnabled(true); 
                      lName.setEnabled(true); 
                      mailText.setEnabled(true);  
                      mobileText.setEnabled(true);    
                      clickCount = 1;
                }else if(clickCount == 1){
                      Toast.makeText(getApplicationContext(), "click1", Toast.LENGTH_SHORT).show();
                      fName.setEnabled(false);
                      lName.setEnabled(false);
                      mailText.setEnabled(false);
                      mobileText.setEnabled(false);
                      clickCount = 0;
                }
        });
    }
    

    【讨论】:

      【解决方案2】:

      使用if-elseisEnabled

      if(fName.isEnabled())
         fName.setEnabled(false);
      else
         fName.setEnabled(true);
      //do the same for other Views
      

      【讨论】:

      • 感谢您的回复。但我想用单一方法制作它。通过这样做应该增加这行代码,因为我几乎有 10-15 个编辑文本。
      • @muhammadusmankhan 欢迎您:) 单一方法是什么意思?您可以在onClick 方法中执行此代码。
      【解决方案3】:

      你也可以试试这个

      boolean clickCount =false;
      
      editText.setOnClickListener(new View.OnClickListener() {
      
              @Override
              public void onClick(View v) {
             if (!clickCount){
                 Toast.makeText(getApplicationContext(), "click0", Toast.LENGTH_SHORT).show();
                 fName.setEnabled(true); 
                 lName.setEnabled(true); 
                 mailText.setEnabled(true);  
                 mobileText.setEnabled(true);    
                 clickCount = true;
               }else {
                  Toast.makeText(getApplicationContext(), "click1", Toast.LENGTH_SHORT).show();
                  fName.setEnabled(false);
                  lName.setEnabled(false);
                  mailText.setEnabled(false);
                  mobileText.setEnabled(false);
                  clickCount = false;//this line is optional
                  }
          });
      }
      

      【讨论】:

        【解决方案4】:

        您可以创建 2 个函数:

        public static void disableEditText(EditText editText) {
                editText.setFocusable(false);
                editText.setEnabled(false);
                editText.setCursorVisible(false);
        
             }
        

        public static void enableEditText(EditText editText) {
            editText.setFocusable(true);
            editText.setEnabled(true);
            editText.setCursorVisible(true);
         }
        

        对我有用,希望对你有帮助!

        谢谢!

        【讨论】:

          猜你喜欢
          • 2016-11-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-10-17
          • 1970-01-01
          • 1970-01-01
          • 2012-01-03
          相关资源
          最近更新 更多