我的问题是,当选中一个复选框时,它会显示它应该的文本。 但是当选中这两个复选框时,它只显示第二个复选框的文本。
public class MainActivity extends Activity {
TextView text;
CheckBox firstCheck, secondCheck;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
firstCheck = (CheckBox) findViewById(R.id.checkBox1);
secondCheck = (CheckBox) findViewById(R.id.checkBox2);
text = (TextView) findViewById(R.id.textView2);
}
public void buttonClick(View view) {
if(firstCheck.isChecked()) {
text.setText(R.string.checkbox_1);
}
if(secondCheck.isChecked()) {
text.setText(R.string.checkbox_2);
}
if(firstCheck.isChecked()==false && secondCheck.isChecked()==false) {
text.setText(R.string.unchecked);
}
}
}
的strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Les 2_1</string>
<string name="hello_world">Hello world!</string>
<string name="checkbox_1">Checkbox 1 </string>
<string name="checkbox_2">Checkbox 2</string>
<string name="button_1">Click here!</string>
<string name="textview_2">And?</string>
<string name="unchecked">No buttons checked!</string>
</resources>
答案 0 :(得分:1)
您的代码
if(secondCheck.isChecked()) {
text.setText(R.string.checkbox_2);
}
是否覆盖了文本,因此您需要附加checkbox_2文本,而不仅仅是设置它。
答案 1 :(得分:0)
if(firstCheck.isChecked()) {
text.setText(R.string.checkbox_1);
}
if(secondCheck.isChecked()) {
text.setText(R.string.checkbox_2);
}
如果同时输入了if,则第二个setText会覆盖第一个文本。
您可以通过附加文字来解决此问题
Resources res = getResources();
text.setText(text.getText().toString() + res.getString(R.string.checkbox_x));
或添加一个涵盖两者的
if (firstCheck.isChecked() && secondCheck.isChecked()) {
text.setText(res.getString(R.string.checkbox_1) + res.getString(R.string.checkbox_2));
}