安卓开发之闹钟界面优化和细节修改

        

首先放几张现在的效果图,一张是编辑闹钟界面,一张闹钟显示界面,重复时间选择界面,标签填写界面,铃声选择界面。

现有的问题:

  闹钟响铃提示窗口没有实现 AlertDialog

  闹钟响铃功能的实现方式有缺陷,一分钟查询一次的效率太低下

  闹钟响铃没有用多线程实现,响铃时候会阻塞数据加载

  编辑界面的重复、铃声、标签没有显示现有的数据  // 重复、铃声、标签已实现,在右侧添加textVeiw并获取相应数据即可,同时在AlertDialog中的onclick或确定事件中设置setTextView使修改结果及时反馈到界面上

  主界面的闹钟开启按钮不美观,且触发修改数据功能没有实现  //实现,通过在adapter中添加点击事件解决

  铃声不会因为选择而改变(原先的做法是调用R.raw.music方法实现的铃声,选择铃声的话通过判定来做又太傻比)

  代码风格的问题,XML换行后自动补全的是空格,习惯性用tab,代码不美观  // 搞定

 

解决方案:

实现分界线的简单XML代码

<View
android:layout_marginLeft="5dip"
android:layout_marginRight="5dip"
android:layout_alignParentBottom="true"
android:background="#000000"       // 黑色
android:layout_width="fill_parent"
android:layout_height="0.2dip" />      //  粗细

实现背景框的方式

picture.9.png图片,在改变UI效果上有奇效,通过SDK中的draw9patch.bat批处理文件实现自定义的边界伸缩图片

实现换行补全TAB

window->preference->XML File->Editor->Indent using TAB

实现多选框

AlertDialog.Builder

repeatDialog.setMultiChoiceItems(weekDays, weekData, new DialogInterface.OnMultiChoiceClickListener()

第一个参数是多选框数据,第二个参数表示是否选中,第三个参数是监听

实现单选框

AlertDialog.Builder

ringDialog.setSingleChoiceItems(rings, currentRing, new DialogInterface.OnClickListener()

第一个参数是选项数据,第二个参数表示选中的数据项,第三个参数是监听

实现闹钟到时响铃框显示出现一点问题,程序莫名闪退。。。。。

小图标素材库

http://iconfont.cn/

界面优化

使用android:layout_weight时,最好将相应的android:layout_width或android:layout_height置为0dip,防止因为某个组件长度过长而影响布局效果

 

响铃后调用AlertDialog时出现Unable to add window -- token null is not valid; is your activity running?

这个bug大意是Intent的context出现了问题,最后通过activity调用AlertDialog

 

Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

Context中有一个startActivity方法,Activity继承自Context,重载了startActivity方法。如果使用Activity的startActivity方法,不会有任何限制,而如果使用Context的startActivity方法的话,就需要开启一个新的task,遇到上面那个异常的,都是因为使用了Context的startActivity方法。解决办法是,加一个flag。

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  

posted @ 2015-12-29 12:28  雪贺  阅读(912)  评论(0编辑  收藏  举报