如何在 Android 中使用 CheckBox 设置字符串

How to use CheckBox for set string in Android

在我的应用程序中我想使用 3 CheckBox 并且我想在检查每个 CheckBoxs 时将一个世界添加到我的 String .
例如:我要3CheckBox(chBoxFree,chBoxDownload , chBoxBuy) 并在检查每个 CheckBoxs 时添加 Free, Download, Buy into one String and when uncheck CheckBox remove 从这个 String.
如果选中 chBoxFreechBoxBuy 在此 string 值中添加 "free-buy"uncheck chBoxBuy, remove buy 从这个字符串

怎么办?

你可以观察onCheckedChanged里面的checked/unchecked,然后据此进行操作。

public class MainActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener {
    private TextView textView;
    private List<String> list = new ArrayList<>();

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView = findViewById(R.id.textview1);

        CheckBox checkBox1 = findViewById(R.id.checkbox1);
        CheckBox checkBox2 = findViewById(R.id.checkbox2);
        CheckBox checkBox3 = findViewById(R.id.checkbox3);

        checkBox1.setOnCheckedChangeListener(this);
        checkBox2.setOnCheckedChangeListener(this);
        checkBox3.setOnCheckedChangeListener(this);
    }

    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if(isChecked) {
            switch (buttonView.getId()) {
                case R.id.checkbox1:
                    list.add("Free");
                    break;
                case R.id.checkbox2:
                    list.add("Download");
                    break;
                case R.id.checkbox3:
                    list.add("Buy");
            }
        } else {
            switch (buttonView.getId()) {
                case R.id.checkbox1:
                    list.remove("Free");
                    break;
                case R.id.checkbox2:
                    list.remove("Download");
                    break;
                case R.id.checkbox3:
                    list.remove("Buy");
            }
        }

        textView.setText(TextUtils.join("-", list));
    }
}