package com.bigkoo.pickerviewdemo; import android.graphics.Color; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v4.content.ContextCompat; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.FrameLayout; import com.bigkoo.pickerview.TimePickerView; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class TestFragment extends Fragment implements View.OnClickListener { private View mView; private Button btnShow; private TimePickerView pvTime; private FrameLayout mFrameLayout; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { mView = inflater.inflate(R.layout.fragment_test, null); return mView; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); btnShow = (Button) mView.findViewById(R.id.btn_show); btnShow.setOnClickListener(this); mFrameLayout = (FrameLayout) mView.findViewById(R.id.fragmen_fragment); initTimePicker(); } private void initTimePicker() { //控制时间范围(如果不设置范围,则使用默认时间1900-2100年,此段代码可注释) //因为系统Calendar的月份是从0-11的,所以如果是调用Calendar的set方法来设置时间,月份的范围也要是从0-11 Calendar selectedDate = Calendar.getInstance(); Calendar startDate = Calendar.getInstance(); startDate.set(2013,0,23); Calendar endDate = Calendar.getInstance(); endDate.set(2019,11,28); //香蕉选择器 pvTime = new TimePickerView.Builder(getActivity(), new TimePickerView.OnTimeSelectListener() { @Override public void onTimeSelect(Date date, View v) {//选中事件回调 // 这里回调过来的v,就是show()方法里面所添加的 View 参数,如果show的时候没有添加参数,v则为null /*btn_Time.setText(getTime(date));*/ Button btn = (Button) v; btn.setText(getTime(date)); } }) .setType(new boolean[]{false, true, true, false, false, false}) .setLabel("", "", "", "", "", "") //设置空字符串以隐藏单位提示 hide label .setDividerColor(Color.DKGRAY) .setContentSize(20) .setDate(selectedDate) .setRangDate(startDate,selectedDate) .setDecorView(mFrameLayout)//非dialog模式下,设置ViewGroup, pickerView将会添加到这个ViewGroup中 .setBackgroundId(0x00000000) .build(); pvTime.setKeyBackCancelable(false);//系统返回键监听屏蔽掉 } @Override public void onClick(View v) { pvTime.show(v,false);//弹出时间选择器,传递参数过去,回调的时候则可以绑定此view } private String getTime(Date date) {//可根据需要自行截取数据显示 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return format.format(date); } }