Java Android 如何显示选中/未选中复选框的Textview
Java Android How To Display Textview of Selected / Unselected Checkbox
好的,我知道如何将复选框转换为字符串并将其设置为 TextView 上的文本,但是如果我有 8 个复选框,我怎样才能拥有一个文本视图,每当我 select 或unselect 个其他复选框。
我已经做了一些工作希望这对你有帮助
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(",");
}
}
}
快乐编码;)
好的,我知道如何将复选框转换为字符串并将其设置为 TextView 上的文本,但是如果我有 8 个复选框,我怎样才能拥有一个文本视图,每当我 select 或unselect 个其他复选框。
我已经做了一些工作希望这对你有帮助
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(",");
}
}
}
快乐编码;)