简体   繁体   English

如何使用 2 组 RadioButtons 在 EditText 中输入文本

[英]How to input text in EditText with 2 groups of RadioButtons

I have 2 groups of radio buttons.我有 2 组单选按钮。 And I want to make when btn1stDigitBrown1 of 1st group is pressed it shows on display "1" just as it is in code below and when btn2ndDigitBlack0 from 2nd group is pressed it should also show one number next to the number that was just written on EditText , for example, "10".我想当第一组的btn1stDigitBrown1被按下时,它显示在显示“1”上,就像它在下面的代码中一样,当第二组的btn2ndDigitBlack0被按下时,它也应该在刚刚写在EditText上的数字旁边显示一个数字,例如“10”。 And when the button of the 2nd group is pressed (for example btn2ndDigitBlack0 ) before button from 1st group is pressed, it should automatically show on EditText "10".并且在按下第一组按钮之前按下第二组按钮(例如btn2ndDigitBlack0 )时,它应该自动显示在EditText "10" 上。 For now, when RadioButton from the 2nd group is pressed it rewrites number written already on EditText .现在,当按下第二组中的RadioButton ,它会重写已经写在EditText This is my code:这是我的代码:

    View.OnClickListener listener1stDigit = new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            switch (view.getId()) {
                case R.id.btn1stDigitBrown1:
                    ((EditText)findViewById(R.id.resistText)).setText("1");
                    break;
                case R.id.btn1stDigitRed2:
                    ((EditText)findViewById(R.id.resistText)).setText("2");
                    break;
                case R.id.btn1stDigitOrange3:
                    ((EditText)findViewById(R.id.resistText)).setText("3");
                    break;
                case R.id.btn1stDigitYellow4:
                    ((EditText)findViewById(R.id.resistText)).setText("4");
                    break;
                case R.id.btn1stDigitGreen5:
                    ((EditText)findViewById(R.id.resistText)).setText("5");
                    break;
                case R.id.btn1stDigitBlue6:
                    ((EditText)findViewById(R.id.resistText)).setText("6");
                    break;
                case R.id.btn1stDigitViolet7:
                    ((EditText)findViewById(R.id.resistText)).setText("7");
                    break;
                case R.id.btn1stDigitGrey8:
                    ((EditText)findViewById(R.id.resistText)).setText("8");
                    break;
                case R.id.btn1stDigitWhite9:
                    ((EditText)findViewById(R.id.resistText)).setText("9");
                    break;
                default:
            }
        }
    };

    btn1stDigitBrown1.setOnClickListener(listener1stDigit);
    btn1stDigitRed2.setOnClickListener(listener1stDigit);
    btn1stDigitOrange3.setOnClickListener(listener1stDigit);
    btn1stDigitYellow4.setOnClickListener(listener1stDigit);
    btn1stDigitGreen5.setOnClickListener(listener1stDigit);
    btn1stDigitBlue6.setOnClickListener(listener1stDigit);
    btn1stDigitViolet7.setOnClickListener(listener1stDigit);
    btn1stDigitGrey8.setOnClickListener(listener1stDigit);
    btn1stDigitWhite9.setOnClickListener(listener1stDigit);

    View.OnClickListener listener2ndDigit = new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            switch (view.getId()) {
                case R.id.btn2ndDigitBlack0:
                    ((EditText)findViewById(R.id.resistText)).setText("0");
                    break;
                case R.id.btn2ndDigitBrown1:
                    ((EditText)findViewById(R.id.resistText)).setText("1");
                    break;
                case R.id.btn2ndDigitRed2:
                    ((EditText)findViewById(R.id.resistText)).setText("2");
                    break;
                case R.id.btn2ndDigitOrange3:
                    ((EditText)findViewById(R.id.resistText)).setText("3");
                    break;
                case R.id.btn2ndDigitYellow4:
                    ((EditText)findViewById(R.id.resistText)).setText("4");
                    break;
                case R.id.btn2ndDigitGreen5:
                    ((EditText)findViewById(R.id.resistText)).setText("5");
                    break;
                case R.id.btn2ndDigitBlue6:
                    ((EditText)findViewById(R.id.resistText)).setText("6");
                    break;
                case R.id.btn2ndDigitViolet7:
                    ((EditText)findViewById(R.id.resistText)).setText("7");
                    break;
                case R.id.btn2ndDigitGrey8:
                    ((EditText)findViewById(R.id.resistText)).setText("8");
                    break;
                case R.id.btn2ndDigitWhite9:
                    ((EditText)findViewById(R.id.resistText)).setText("9");
                    break;
                default:
            }
        }
    };

    btn2ndDigitBlack0.setOnClickListener(listener2ndDigit);
    btn2ndtDigitBrown1.setOnClickListener(listener2ndDigit);
    btn2ndDigitRed2.setOnClickListener(listener2ndDigit);
    btn2ndDigitOrange3.setOnClickListener(listener2ndDigit);
    btn2ndDigitYellow4.setOnClickListener(listener2ndDigit);
    btn2ndDigitGreen5.setOnClickListener(listener2ndDigit);
    btn2ndDigitBlue6.setOnClickListener(listener2ndDigit);
    btn2ndDigitViolet7.setOnClickListener(listener2ndDigit);
    btn2ndDigitGrey8.setOnClickListener(listener2ndDigit);
    btn2ndDigitWhite9.setOnClickListener(listener2ndDigit);

setText(...) rewrite text in TextView. setText(...) 在 TextView 中重写文本。 To add text at the end use append(...)要在最后添加文本,请使用 append(...)

for example:例如:

TextView textView = findViewById<TextView>(R.id.some_text_view);
textView.setText("1"); //text contain 1
textView.setText("2"); //text contain 2
textView.setText("3"); //text contain 3
textView.append("1"); //text contain 31
textView.append("2"); //text contain 312
...

I think what you need to do is to learn how to manipulate strings You should read this我认为你需要做的是学习如何操作字符串 你应该阅读这个

What you should do in the 2nd listener is concatenate the new number你应该在第二个监听器中做的是连接新数字

switch (view.getId()) {
     case R.id.btn2ndDigitBlack0: {
         EditText editText = ((EditText)findViewById(R.id.resistText))
         String oldString = editText.getText()
         if (oldString.length <= 1) {
            editText.setText(oldString + "0")
         } else {
             editText.setText(oldString.substring(0, 1) + "0")
         }
         }
     ...

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM