Java Android如何显示选定/未选中复选框的Textview

时间:2018-04-13 07:09:01

标签: android checkbox textview

好的我知道如何将一个复选框转换为字符串并将其设置为TextView上的文本,但如果我有8个复选框,那么每当我选择或取消选中其他复选框时,如何使用textview来动态更改字符串。

1 个答案:

答案 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(",");
    }
}
}

快乐编码;)