Android(安卓)桌面组件【app widget】 进阶项目②--心情记录器
16lz
2021-01-26
本篇完成项目名称为:【心情记录器】 可将你的心情讯录并用桌面组件的形式展示于桌面上,并有丰富的表情可供选择并加载在桌面上,此功能类似于QQ上的各性签名,虽然手机是自己的但我们用的是Android 手机,难免会有朋友拿来把玩,此时可以看到手机主人的心情状况不是很好吗?或许可以自己把一些不满的想法偷偷用心情记录下来也可以。注:此功能并不提供多个心情保存,只能保存一个,如果需要的朋友可以在后文为我提建议,当然我觉得多个心情保存个人不想要这个功能。。如果要的话请留言。 好了,废话了好多,先让大家看下图: Tip:这个小东西完全 是App widget 桌面组件,所以必须通过长按桌面或者点击menu调出来。 上篇app Widget 的DEMO 只是为TextView 添加点击事件,本篇将换另外的做法。通过点击布局弹出一个Activity 的操作界面,之后在这个操作界面进行表情的选择和心情的保存,那么如何通过点击打开一个Activity 界面呢? 方法一: 在我们组件的updateAppWidget 中注册一个广播,为 TextView 添加 一个点击的广播,之后在onReceive接收广播 中如下代码: Intent intn=new Intent(context, update.class); intn.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intn); 通过为Intent 重新设置一个新的任务来打开Activity 此法即可启动一个Activity ,当然这种做法我是不建议的,因为重复了一个动作,具体怎么重复下文会具体告知大家。为TextView 注册广播可参考上面给出的链接,上文有介绍,在此就不多做介绍。 方法二: 此方法正是想告知大家如何重复的,即然我们可以为其注册广播那我们为什么不索性就为其做广播点击跳转?参考代码如下: Intent intentClick = new Intent(context, update.class); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intentClick, 0); rv.setOnClickPendingIntent(R.id.layout, pendingIntent); 通过这里的设置,上文将不用再去接收广播也可以达到想要的效果。 下面是通过点击打开 Activity 操作界面的效果图,在这里有点不好意思啦,因为即兴画的很丑,大家就将就着看吧,主要是理解App widget 的写法 如何通过点击保存的与app Widget 做动态交互呢?来看下面这段代码 这里同样还是用到发RemoteViews 来接收值的变化,然后通过AppWidgetManager 这个桌面组件管理器去改新RemoteViews 。由于我们要时时刻保存用户记录的数据,这里只是用到了键值对保存。 下面贴出代码: 由于组件每创建一次都调用了一次Onupdate() 这个方法,故此方法也必须去获取键值对 Tip:上面所有知识点,之前所有文章都有提到,有不懂的地方可以自行做参考。 |
更多相关文章
- Android(安卓)数独解码器 初级版(只能解简单数独)
- 主题:四,android四大组件基础介绍及打电话,发短信简单应用 &单元测
- 新建Android(安卓)AVD,点击start、launch,出现进度条后无任何反应,
- Android中Tabhost既可以点击切换又可滑动切换不同Activity的View
- [置顶] Android(安卓)popwindow和fragment结合 左侧弹出下拉菜单
- Android小部件布局大小和点击事件
- Android如何正确的保存文件
- 【Xamarin.Android】探索android的底部导航视图
- 局域网内android设备发现及通讯