今天需要实现的是在建立好的listview中通过checkbox获取到选中状态,并在actionbar中的optionmenu里加入一个短信图标,向选中的对象发送短信,点击后会弹出一个文字输入窗口,输入完成后点击OK发送。
因为是在slidingmenu的项目环境下写的程序,我在gridfragment类中获取到选中状态,但因为短信功能在上层activity的actionbar中,需要在点击事件发生后获取到选中的数据状态。
网上有关传递数据的资料基本都是用intent的方式进行主动传递,跟我的需求不同,最后因为是小项目不用考虑太多。我选用了比较简单的静态对象方式,以全局的方式进行传递和修改。
弹出短信窗口的方式我在网上找了一段代码,比较好实现。
短信发送的时候调用接口,获取到文字信息和号码的字符串,就可以发送了。需要注意的是要在配置文件中取得权限。
然后我想增加一个全选的功能,这样比较方便群发短信,这时候问题来了,我不能在optionmenu中添加带有selector的item,不能理想的显示出像按钮一样的图片改变。
在这个问题上研究了好久,最后发现actionbar其实是非常自由的东西,可以通过actionlayout来自由的添加内容,直接添加一个带有checkbox的layout ,就可以正常显示了。
但这个时候,还没有实现checkbox单选框的全选功能。因为获取不到控件,最后我采用了先获取到menuitem,然后再通过setactionview方法,设置好目标的layout,再通过getAcitionView获取到该view,最后获取到其中的checkbox。
刷新场景和修改标志数组通过静态函数实现。