当前位置:XML > XML评价

Android一个简单的闹钟APP

北京中科白癜风医院优惠活动 http://www.bdfyy999.com/bdf/zhongkedongtai/zhongkexinwen/102233.html
一个简单的闹钟效果视频闹钟子项子项布局效果图闹钟适配器类闹钟初始数据侧滑删除闹钟子项添加依赖布局设置实现侧滑回调方法绑定RecyclerView删除子项新增闹钟子项序列化实体类定义实体类,并实现序列化取出序列化实体类对象TimePicker自定义TimePicker文字大小及颜色获取时间数据返回时间数据存储数据取出数据子项添加自定义Switch样式Switch效果如图创建`thumb`和`track`样式thumb样式选中状态默认状态track样式选中状态默认状态闹钟提醒服务Service开始服务暂停服务单例类SP封装类KillProcess封装类TimeFormat封装类下载地址尾言效果视频闹钟子项子项布局效果图闹钟适配器类

本示例采用的是RecyclerView,其适配器类与常无二,其异在于继承一个代理类,为适配之后侧滑删除而准备

publicclassClockAdapterextendsWeSwipeProxyAdapterClockAdapter.ViewHolder

建立一个内部类ViewHolder实现控件定义申明

publicViewHolder(

NonNullViewitemView){super(itemView);DeleteBtn=itemView.findViewById(R.id.DeleteBtn);Hour=itemView.findViewById(R.id.Hour);Split=itemView.findViewById(R.id.Split);Min=itemView.findViewById(R.id.Min);Layout=itemView.findViewById(R.id.ItemLayout);ClockSwitch=itemView.findViewById(R.id.ClockSwitch);}

实现onCateViewHolder方法载入子项布局文件

publicViewHolderonCateViewHolder(

NonNullViewGrouppant,intviewType){Viewview=LayoutInflater.from(pant.getContext()).inflate(R.layout.clock_item,pant,false);turnnewViewHolder(view);}

绑定实体类,实现onBindViewHolder获取数据

publicvoidonBindViewHolder(

NonNullfinalViewHolderholder,finalintposition){finalClockTimeclockTime=timeList.get(position);holder.Hour.setText(clockTime.getHour());holder.Split.setText(":");holder.Min.setText(clockTime.getMin());booleanisSelect=clockTime.isSelect();if(isSelect){holder.ClockSwitch.setChecked(true);}else{holder.ClockSwitch.setChecked(false);}holder.DeleteBtn.setOnClickListener(newView.OnClickListener(){

OverridepublicvoidonClick(Viewv){DeleteItem(position);}});holder.ClockSwitch.setOnCheckedChangeListener(newCompoundButton.OnCheckedChangeListener(){

OverridepublicvoidonCheckedChanged(CompoundButtonbuttonView,booleanisChecked){if(isChecked){SelectModel(holder,clockTime);}else{NormalModel(holder);}}});}

闹钟初始数据

此处有三处状态,第一种状态:第一次进入程序,默认加载固定闹钟子项;第二种状态:进入添加子项页面,然后返回其主页面,并判断其switch是否为tu,如果为tu则添加子项;第三种状态:程序被系统回收或者用户停止程序,并再次进入程序,防止加载前一时刻闹钟子项;

/***默认数据*/privatevoidInitData(){if(flag==START){for(inti=;i0;i+=){ClockTimeclockTime=newClockTime(timeFormat.HandleHour(i),timeFormat.HandleHour(i),false);clockTimeList.add(clockTime);clockTime.setClockTimeList(clockTimeList);}}elseif(flag==PAUSE){GetCallBackData();}else{Log.d(TAG,"RestartApp");}}

侧滑删除闹钟子项添加依赖

实现侧滑主要依赖于一个第三方包,然后使用RecyclerView进行子项绑定依赖如下:

implementation


转载请注明:http://www.vviuov.com/jbsl/1063496.html

  • 上一篇文章:
  • 下一篇文章: 没有了