我正在开发一个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);
}
});
答案 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-else
和isEnabled
:
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);
}
它对我有用,我希望它会对你有帮助!
谢谢!