1、写在前面的话
本人40岁纯小白一枚,最近对Android APP有了兴趣,目前的任务:通过Android Studio 利用Apche poi 、EasyExcel等第三方库,编写APP,实现移动端APP 与后台Excel的数据交互。
这次利用CSDN平台记录下自己的成长。
纯属小白,有概念或者描述错误,希望大佬们不吝赐教,再此谢过。
2、任务目标
目前正在学习这本书,在做P110页的作业时,发现的问题:
- 作业要求,点击“进入主页”的按钮,一次性获取已近选取的多选框的text属性,然后Toast出来。这个比较简单,为按钮添加单击事件监听器,根据id判断CheckBox的状态,如果isChecked,则获取其text属性,然后赋值给string,依次判断,依次为string+,实现字符串的连接效果,达到一次性获取已选项的目的。
- 而我的想法是每次选择时:(1)就直接获取(省去按钮的作用),然后Toast出来。(2)点选时,一次性获取到 全部的已选项text属性,然后Toast出来。
2.1 第一种想法,已近在大佬的帮助下解决,就是利用CompoundButton(抽象类按钮)设置一个监听器,根据监听器的名称(listener),监听全部的CheckBox控件,只需要为CheckBox的setOnCheckedChangeListener监听器设置相同的名称即可。格式为chb1.setOnCheckedChangeListener(listener)。
2.2一次性获取到 全部的已选项text属性的想法,却没有实现。直到今天碰到了StringBuffer(字符串变量)便想利用其append的字符串追加方法,来实现。
3.思路:利用CompoundButton监控所有CheckBox,当判断某一个被选中时,利用StringBuffer的append方法,完成字符串的连接。
3、实现过程
3.1布局文件的编写
===================省略= ===============
3.1逻辑的实现
public class MainActivity extends AppCompatActivity {
//1.定义不同类型的变量
public CheckBox chb1, chb2, chb3, chb4, chb5, chb6, chb7, chb8, chb9, chb10, chb11;
public Button btn1;
public StringBuffer buffer; //注意:buffer变量为StringBuffer类型(它的初始化方法也不同,下面会有注释)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//2.获取CheckBox控件
chb1 = findViewById(R.id.chb1);
chb2 = findViewById(R.id.chb2)