繁体   English   中英

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

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

我有 2 组单选按钮。 我想当第一组的btn1stDigitBrown1被按下时,它显示在显示“1”上,就像它在下面的代码中一样,当第二组的btn2ndDigitBlack0被按下时,它也应该在刚刚写在EditText上的数字旁边显示一个数字,例如“10”。 并且在按下第一组按钮之前按下第二组按钮(例如btn2ndDigitBlack0 )时,它应该自动显示在EditText "10" 上。 现在,当按下第二组中的RadioButton ,它会重写已经写在EditText 这是我的代码:

    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(...) 在 TextView 中重写文本。 要在最后添加文本,请使用 append(...)

例如:

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
...

我认为你需要做的是学习如何操作字符串 你应该阅读这个

你应该在第二个监听器中做的是连接新数字

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