DatePickerDialog时间选择器+MVPPlugin开发插件的使用
来源:互联网 发布:linux单用户模式怎么进 编辑:程序博客网 时间:2024/05/18 03:09
前言
最近做项目一直想使用MVPPlugin插件来开发,下载了插件,今天借着写DatePickerDialog时间选择器的demo,来看一下这个MVPPlugin插件的使用,就是一个很简单的使用方式,可以根据自己的需求,自己添加更多的方法和功能。
先看一下效果图:
以上是选择年份的效果图,很简单的实现。
首先要安装MVPPligin这个插件,安装方法请查看:http://blog.csdn.net/huang3513/article/details/70213678这篇文章,在安装完成之后,会生成相应的基础代码类,这样我们只要在对应的类中做代码处理即可。
然后我们看一下包的结构图:
直接上代码:
1.MainActivity.class类主要负责数据的显示,在mvp中不做太多的业务逻辑处理,代码很简单,如下:
/** * MVPPlugin * MainActivity主界面 */public class MainActivity extends MVPBaseActivity<MainContract.View, MainPresenter> implements MainContract.View { private Button yearBtn; private Button monthBtn; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); yearBtn = (Button)findViewById(R.id.button_year); monthBtn = (Button)findViewById(R.id.button_month); initView(); } private void initView() { mPresenter.setView(); mPresenter.onClickBtn(); } @Override public Button getYearButton() { return yearBtn; } @Override public Button getMonthButton() { return monthBtn; } @Override public Activity getActivity() { return MainActivity.this; }}
2.MainContract.class类中,主要在接口中定义我们想要的方法,示例代码如下:
/** * MVPPlugin * 主要在接口中定义出我们自己想要的方法 */public class MainContract { interface View extends BaseView { Button getYearButton(); Button getMonthButton(); Activity getActivity(); } interface Presenter extends BasePresenter<View> { void setView(); void onClickBtn(); }}
3.MainPresenter.class是主要负责MainActivity的业务逻辑处理,来分担view层的压力
/** * MVPPlugin * MainActivity的业务逻辑处理 */public class MainPresenter extends BasePresenterImpl<MainContract.View> implements MainContract.Presenter{ Button yearBtn,monthBtn; Activity mActivity; Calendar calendar_selected = Calendar.getInstance(); @Override public void setView() { yearBtn = mView.getYearButton(); monthBtn = mView.getMonthButton(); mActivity = mView.getActivity(); } @Override public void onClickBtn() { /** * 时间选择器(选择的年份) */ yearBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int year = calendar_selected.get(Calendar.YEAR); int month = calendar_selected.get(Calendar.MONTH); int day = calendar_selected.get(Calendar.DAY_OF_MONTH); //时间选择器(选择年份) MyDatePickerDialog myDatePickerDialog = MyDatePickerDialog.newInstance(new MyDatePickerDialog.OnDateSetListener() { @Override public void onDateSet(MyDatePickerDialog view, int year, int monthOfYear, int dayOfMonth) { Toast.makeText(mActivity,year+"",Toast.LENGTH_LONG).show(); } },year, month, day); myDatePickerDialog.showYearPickerFirst(true); myDatePickerDialog.setMaxDate(Calendar.getInstance()); myDatePickerDialog.setTitle("选择年份"); myDatePickerDialog.show(mActivity.getFragmentManager(), "myDatePickerDialog"); } }); /** * 时间选择器(选择的月份) */ monthBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int year = calendar_selected.get(Calendar.YEAR); int month = calendar_selected.get(Calendar.MONTH); int day = calendar_selected.get(Calendar.DAY_OF_MONTH); //时间选择器(选择年份) MyDatePickerDialog myDatePickerDialog = MyDatePickerDialog.newInstance(new MyDatePickerDialog.OnDateSetListener() { @Override public void onDateSet(MyDatePickerDialog view, int year, int monthOfYear, int dayOfMonth) { Toast.makeText(mActivity,year+"-"+(monthOfYear+1)+"-"+dayOfMonth,Toast.LENGTH_LONG).show(); } },year, month, day); myDatePickerDialog.showYearPickerFirst(false); myDatePickerDialog.setMaxDate(Calendar.getInstance()); myDatePickerDialog.setTitle("选择年月日"); myDatePickerDialog.show(mActivity.getFragmentManager(), "myDatePickerDialog"); } }); /** * 时间选择器(选择的年月日) */ allBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { DatePickerDialog datePickerDialog = DatePickerDialog.newInstance( new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePickerDialog view, int year, int monthOfYear, int dayOfMonth) { calendar_selected.set(Calendar.YEAR,year); calendar_selected.set(Calendar.MONTH,monthOfYear); calendar_selected.set(Calendar.DAY_OF_MONTH,dayOfMonth); Toast.makeText(mActivity,year+"-"+(monthOfYear+1)+"-"+dayOfMonth,Toast.LENGTH_LONG).show(); } }, calendar_selected.get(Calendar.YEAR), calendar_selected.get(Calendar.MONTH), calendar_selected.get(Calendar.DAY_OF_MONTH)); datePickerDialog.setTitle("请选择日期"); datePickerDialog.setMaxDate(Calendar.getInstance()); datePickerDialog.show(mActivity.getFragmentManager(),"选择日期"); } }); }}
以上就是主要的代码,顺便在这边做个笔记,方便查看,如有什么好的意见,请留言,谢谢!
源码下载地址:
http://download.csdn.net/download/huang3513/9853800
阅读全文
0 0
- DatePickerDialog时间选择器+MVPPlugin开发插件的使用
- 简单的时间选择器DatePickerDialog
- DatePickerDialog日期选择器的使用
- 时间选择器DatePickerDialog的简单demo
- Android日期选择器DatePickerDialog的使用
- QML开发的时间选择器的插件
- DatePickerDialog TimePickerDialog时间选择器对话框
- DatePickerDialog\TimePickerDialog日期时间选择器
- Android_日期选择器DatePickerDialog、时间选择器TimePickerDialog
- 时间设置对话框 DatePickerDialog的使用
- 时间设置对话框 DatePickerDialog的使用
- 时间设置对话框DatePickerDialog的使用
- ngCordova插件(5)之DatePicker时间选择器插件的使用
- 日期选择器DatePickerDialog简化使用
- 使用DatePickerDialog制作日期选择器
- 使用DatePickerDialog制作日期选择器
- 安卓原生自带的日期选择器DatePickerDialog、时间选择器TimePickerDialog使用方法
- 获取DatePickerDialog的时间
- linux中scp命令使用技巧详解(传输速度)
- 将Eclipse所有的设置都设置为UTF-8格式,以方便开发使用。
- BZOJ 1968 约数研究
- mysql将一个表的字段更新到另一个表中
- 数据结构--队列
- DatePickerDialog时间选择器+MVPPlugin开发插件的使用
- Android的数据存储与访问:一个商品展示
- sleep
- android activity跳转时黑屏解决方案
- java多客户端TCP连接应用
- 递归与分策略之合并排序
- 极大似然估计
- Ajax发送和获取json数据到Spring mvc
- AngularJS初始化的过程,以及需要的时候你该如何修改AngularJS的初始化