想要将“一键式”用作2个单独“编辑文本”的后退?

时间:2019-01-18 06:28:10

标签: java android button android-edittext

我想使用一个按钮作为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");
            }

        }
    });

2 个答案:

答案 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("");
            }    
        }    
    });