我想使用一个按钮作为2个单独的编辑文本的退格键 我的意思是,当专注于(编辑文本)时,我可以使用其上的按钮吗.....
我不能使用if语句(我是android开发中的新手)
这是我的代码
bak.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (et1.hasFocus()) {
}
String str = et1.getText().toString();
if (str.length() > 1) {
str = str.substring(0, str.length() - 1);
et1.setText(str);
} else if (str.length() <= 1) {
et1.setText("");
}
}
});
bak.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (et2.hasFocus()){
}
String str2 = et2.getText().toString();
if (str2.length() > 1) {
str2 = str2.substring(0, str2.length() - 1);
et2.setText(str2);
} else if (str2.length() <= 1) {
et2.setText("");
}
}
});
但是我的另一个按钮的其他代码工作正常(为什么?)
BT9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (et2.hasFocus()) {
et2.append("9");
}
if (et1.hasFocus()) {
et1.append("9");
}
if (ans.hasFocus()) {
ans.append("9");
}
}
});
答案 0 :(得分:0)
您的代码中的问题是您两次在同一按钮上设置了OnClickListener。第二个OnClickListener将覆盖第一个。因此,我们需要在单个OnClickListener中执行此操作。 请尝试以下代码
bak.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText focusEditText=et1;
if (et1.hasFocus()) {
focusEditText=et1;
}
if (et2.hasFocus()){
focusEditText=et2;
}
String str = focusEditText.getText().toString();
if (str.length() > 1) {
str = str.substring(0, str.length() - 1);
focusEditText.setText(str);
} else if (str.length() <= 1) {
focusEditText.setText("");
}
}
});
答案 1 :(得分:0)
您应按以下方式编写代码:
bak.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (et1.hasFocus()) {
}
String str = et1.getText().toString();
if (str.length() > 1) {
str = str.substring(0, str.length() - 1);
et1.setText(str);
} else if (str.length() <= 1) {
et1.setText("");
}
////////////////////////////////////////////////////////////
if (et2.hasFocus()){
}
String str2 = et2.getText().toString();
if (str2.length() > 1) {
str2 = str2.substring(0, str2.length() - 1);
et2.setText(str2);
} else if (str2.length() <= 1) {
et2.setText("");
}
}
});