好的我知道如何将一个复选框转换为字符串并将其设置为TextView上的文本,但如果我有8个复选框,那么每当我选择或取消选中其他复选框时,如何使用textview来动态更改字符串。
答案 0 :(得分:1)
我做了一些工作,希望这可以帮助你
activity_main.xml 文件
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="vertical">
<CheckBox
android:id="@+id/checkBox1"
android:layout_margin="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="item 1" />
<CheckBox
android:layout_margin="10dp"
android:id="@+id/checkBox2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="item 2" />
<CheckBox
android:layout_margin="10dp"
android:id="@+id/checkBox3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="item 3" />
<TextView
android:layout_margin="10dp"
android:padding="15dp"
android:id="@+id/action_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
</LinearLayout>
在 MainActivity.java 文件
中public class MainActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener {
CheckBox item1, item2, item3;
TextView textView;
ArrayList<String> StringArray = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViews();
}
public void initViews(){
item1 = findViewById(R.id.checkBox1);
item2 = findViewById(R.id.checkBox2);
item3 = findViewById(R.id.checkBox3);
textView = findViewById(R.id.action_text);
item1.setOnCheckedChangeListener(this);
item2.setOnCheckedChangeListener(this);
item3.setOnCheckedChangeListener(this);
setText();
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked) {
StringArray.add("" + buttonView.getText().toString());
} else {
StringArray.remove(StringArray.indexOf(buttonView.getText().toString()));
}
setText();
}
public void setText(){
textView.setText("");
for (int i=0; i<StringArray.size();i++) {
textView.append(StringArray.get(i));
textView.append(",");
}
}
}
快乐编码;)