![](/img/trans.png)
[英]How do I smoothly store user input data with EditText and RadioButtons (with a color set as well)?
[英]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.