如果edittext_2
为空,我试图让edittext_1
无法修改,但如果edittext_1
不为空,我希望edittext_2
可以编辑。
我试过这段代码:
if (edittext_1.getText().toString().equals(""))
{
edittext_2.setEnabled(false);
}
else
{
edittext_2.setEnabled(true);
}
一开始,代码工作正常,edittext_2
无法编辑,但当我在edittext_1
中输入值时,edittext_2
仍然无法编辑。
答案 0 :(得分:3)
您需要在edittext_1
上添加TextWatcher()
。
试试这个
edittext_1.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
if (s.toString().equals("")) {
edittext_2.setEnabled(false);
} else {
edittext_2.setEnabled(true);
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});
答案 1 :(得分:0)
使用此功能。
if (edittext_1.getText().equalsIgnoreCase(""))
{
edittext_2.setEnabled(false);
edittext_2.setFocusable(false);
}
else
{
edittext_2.setEnabled(true);
edittext_2.setFocusable(true);
}
答案 2 :(得分:0)
试试这个
editText2.setEnabled(false);
editText1.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
if (!editText1.getText().toString().equals("")) {
editText2.setEnabled(true);
} else {
editText2.setEnabled(false);
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});
答案 3 :(得分:0)
您初始化的内容将首次有效,但当您在edittext_1
中进行一些更改时,您应该再次启用edittext_2
。还要添加以下代码,
edittext_1.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
if (edittext_1.getText().toString().equals(""))
{
edittext_2.setEnabled(false);
}
else
{
edittext_2.setEnabled(true);
}
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
public void onTextChanged(CharSequence s, int start, int before, int count) {}
});