Edittext字段启用和禁用Android中的按钮

时间:2014-11-15 07:37:48

标签: android android-edittext onclicklistener

我正在开发一个Android应用程序,我希望通过使用" EDIT"来启用和禁用编辑文本。按钮。我正在做的事情,如果我按下按钮它将启用edittexts,如果我再次按EDIT按钮,那么它将禁用EditTexts。

我的代码段如下。在第一次尝试的以下条件下,它工作正常,但再次点击后它只返回" 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);
            }
        });

4 个答案:

答案 0 :(得分:4)

试试这个

  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;
            }
    });
}

答案 1 :(得分:3)

使用if-elseisEnabled

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

答案 2 :(得分:1)

你也可以试试这个

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
            }
    });
}

答案 3 :(得分:0)

您可以创建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);
 }

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

谢谢!