一、实现多种时间选择器
1.点击跳出弹框,选择年月日(使用到units目录下的menPopupWindow类)
package com.ruidde.csndresourcedemo.units;
import android.content.Context;
import android.graphics.drawable.BitmapDrawable;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.PopupWindow;
import android.widget.TextView;
import android.widget.Toast;
import com.ruidde.csndresourcedemo.R;
public class menPopupWindow { private Context context;
private PopupWindow menuWindow;
private LayoutInflater inflater = null;
private CalendarView calendarView;
public menPopupWindow(Context context){
this.context = context;
inflater = LayoutInflater.from(context);
}
/**
* 初始化popupWindow
*
* @param view
*/
public void showPopwindow(View view) {
menuWindow = new PopupWindow(view, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
menuWindow.setFocusable(true);
menuWindow.setBackgroundDrawable(new BitmapDrawable());
// 动画效果 从底部弹起
menuWindow.showAtLocation(view, Gravity.BOTTOM, 0, 0);
// 从指定View下显示
// menuWindow.showAsDropDown(view);
menuWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
menuWindow = null;
}
});
}
public void showPopwindowDowm(View v ,View view) {
menuWindow = new PopupWindow(view, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
menuWindow.setFocusable(true);
menuWindow.setBackgroundDrawable(new BitmapDrawable());
// 动画效果 从中间
menuWindow.showAtLocation(view, Gravity.CENTER, 0, 0);
// 从指定View下显示
// menuWindow.showAsDropDown(v);
menuWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
menuWindow = null;
}
});
}
/**
* 选择器加网络请求
* @return
*/
private String ValuesR = null;
public View getStringRequestListPick(final View showView ,String currentTime) {
View view = inflater.inflate(R.layout.activity_calender, null);
calendarView = (CalendarView) view.findViewById(R.id.calendarview);
calendarView.setDate(currentTime);
calendarView.setOnDateSelectedListener(new CalendarView.OnDateSelectedListener() {
@Override
public void onDateSelected(int year, int month, int day) {
Toast.makeText(context, year+"=" + month + "=" + day, Toast.LENGTH_SHORT).show();
setRequst(showView , year+"-" + month + "-" + day);
dismissPopwindow();
}
});
return view;
}
public void dismissPopwindow(){
if (menuWindow != null && menuWindow.isShowing()) {
menuWindow.dismiss();
}
}
/**
* 显示选择数据
* */
private void setRequst(View view, String requst){
if (view instanceof TextView) {
((TextView)view).setText(requst);
} else if (view instanceof EditText) {
((EditText)view).setText(requst);
} else if (view instanceof Button) {
((Button)view).setText(requst);
}
}
}
在Acticity中使用
btn_send.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
PopupWindow = new menPopupWindow(context);
PopupWindow.showPopwindowDowm(btn_send, PopupWindow.getStringRequestListPick(tv_content, cirrentTime));
}
});
2.使用Whell实现年月日 、时间、单个滚轮选择器(DateLianDongActivity)主要引用类在widget目录下:
3.获取系统时间、截取时间、星期几(GetDateTimesActivity)
4.自定义年月日的选择(CustomDateActivity)主要引用的类在dateYears目录下
5.自定义日历,对当前日期进行标记且只能选择未来的日期(当然可以根据需要自定义),点击上月或下月的日期可以跳转当对应的月份。也可以自己添加按钮来选择上一月或者下一月(代码有已注销)。(CustomRiLiActivity)
7.自定义时间选择器,显示的时间不能到过系统当前时间并且实现月份与日联动(CoustEndDateActivity)
大家需要可以进入下面链接下载源码:https://download.csdn.net/download/yyxhzdm/12849466
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/119215.html