亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

Android 滾動時間選擇的示例代碼

瀏覽:2日期:2022-09-21 13:36:27

效果圖 復制代碼直接用!!!!

Android 滾動時間選擇的示例代碼

Android 滾動時間選擇的示例代碼

1.導入依賴

implementation ’com.bigkoo:pickerview:2.1.0’

2.三個bean類PickerViewData

public class PickerViewData implements IPickerViewData { private String content; public PickerViewData(String content) { this.content = content; } public void setContent(String content) { this.content = content; } @Override public String getPickerViewText() { return content; }}

ProvinceBean

public class ProvinceBean implements IPickerViewData { private long id; private String name; private String description; private String others; public ProvinceBean(long id,String name,String description,String others){ this.id = id; this.name = name; this.description = description; this.others = others; } public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getOthers() { return others; } public void setOthers(String others) { this.others = others; } //這個用來顯示在PickerView上面的字符串,PickerView會通過IPickerViewData獲取getPickerViewText方法顯示出來。 @Override public String getPickerViewText() { return name; }}

TimeBean

public class TimeBean implements IPickerViewData { private String time; public TimeBean(String time) { this.time = time; } public String getTime() { return time; } public void setTime(String time) { this.time = time; } @Override public String getPickerViewText() { return time; }}

3,布局文件activity_main

<RelativeLayout xmlns:android='http://schemas.android.com/apk/res/android' android:layout_width='match_parent' android:layout_height='match_parent' android:orientation='vertical' > <TextView android:layout_margin='50dp' android: android:text='時間' android:layout_width='match_parent' android:layout_height='50dp'/> <TextView android: android:layout_margin='50dp' android:layout_below='@+id/tvTime' android:text='條件' android:layout_width='match_parent' android:layout_height='50dp'/> <View android: android:visibility='gone' android:background='#e0000000' android:layout_width='fill_parent' android:layout_height='fill_parent'/></RelativeLayout>

4.MainActivity

public class MainActivity extends Activity { private ArrayList<TimeBean> options1Items = new ArrayList<>(); private ArrayList<ArrayList<String>> options2Items = new ArrayList<>(); private ArrayList<ArrayList<ArrayList<IPickerViewData>>> options3Items = new ArrayList<>(); private TextView tvTime, tvOptions; TimePickerView pvTime; OptionsPickerView pvOptions; View vMasker; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); vMasker=findViewById(R.id.vMasker); tvTime=(TextView) findViewById(R.id.tvTime); tvOptions=(TextView) findViewById(R.id.tvOptions); //時間選擇器 pvTime = new TimePickerView(this, TimePickerView.Type.MONTH_DAY_HOUR_MIN); //控制時間范圍// Calendar calendar = Calendar.getInstance();// pvTime.setRange(calendar.get(Calendar.YEAR) - 20, calendar.get(Calendar.YEAR));//要在setTime 之前才有效果哦 pvTime.setTime(new Date()); pvTime.setCyclic(false); pvTime.setCancelable(true); //時間選擇后回調(diào) pvTime.setOnTimeSelectListener(new TimePickerView.OnTimeSelectListener() { @Override public void onTimeSelect(Date date) {tvTime.setText(getTime(date)); } }); //彈出時間選擇器 tvTime.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {pvTime.show(); } }); //選項選擇器 pvOptions = new OptionsPickerView(this); //選項1 options1Items.add(new TimeBean('現(xiàn)在')); options1Items.add(new TimeBean('今天')); options1Items.add(new TimeBean('明天')); options1Items.add(new TimeBean('后天')); //選項 1 2 ArrayList<String> options2Items_01=new ArrayList<>(); options2Items_01.add('--'); //22 ArrayList<String> options2Items_02=getTodayHourData(); //32 ArrayList<String> options2Items_03=getHourData(); //32 ArrayList<String> options2Items_04=getHourData(); options2Items.add(options2Items_01); options2Items.add(options2Items_02); options2Items.add(options2Items_03); options2Items.add(options2Items_04); //選項3 ArrayList<ArrayList<IPickerViewData>> options3Items_01 = new ArrayList<>(); ArrayList<ArrayList<IPickerViewData>> options3Items_02 = new ArrayList<>(); ArrayList<ArrayList<IPickerViewData>> options3Items_03 = new ArrayList<>(); ArrayList<ArrayList<IPickerViewData>> options3Items_04 = new ArrayList<>(); ArrayList<IPickerViewData> options3Items_01_01=new ArrayList<>(); options3Items_01_01.add(new PickerViewData('--')); options3Items_01.add(options3Items_01_01); options3Items_02 =getmD2(); options3Items_03 =getmD(); options3Items_04 =getmD(); options3Items.add(options3Items_01); options3Items.add(options3Items_02); options3Items.add(options3Items_03); options3Items.add(options3Items_04); //三級聯(lián)動效果 pvOptions.setPicker(options1Items, options2Items, options3Items, true); //設置選擇的三級單位// pwOptions.setLabels('省', '市', '區(qū)'); pvOptions.setTitle(' '); pvOptions.setCyclic(false, false, false); //設置默認選中的三級項目 //監(jiān)聽確定選擇按鈕 pvOptions.setSelectOptions(0, 0, 0); pvOptions.setOnoptionsSelectListener(new OptionsPickerView.OnOptionsSelectListener() { @Override public void onOptionsSelect(int options1, int option2, int options3) {//返回的分別是三個級別的選中位置String tx = options1Items.get(options1).getPickerViewText() + options2Items.get(options1).get(option2) + options3Items.get(options1).get(option2).get(options3).getPickerViewText();tvOptions.setText(tx);vMasker.setVisibility(View.GONE); } }); //點擊彈出選項選擇器 tvOptions.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {pvOptions.show(); } }); } public static String getTime(Date date) { SimpleDateFormat format = new SimpleDateFormat('yyyy-MM-dd HH:mm'); return format.format(date); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if(pvOptions.isShowing()||pvTime.isShowing()){pvOptions.dismiss();pvTime.dismiss();return true; } if(pvTime.isShowing()){pvTime.dismiss();return true; } } return super.onKeyDown(keyCode, event); } /** * 今天 點 */ private ArrayList<String> getTodayHourData(){ int max =currentHour(); if (max<23&&currentMin()>45){ max=max+1; } ArrayList<String> lists=new ArrayList<>(); for (int i=max;i<24;i++){ lists.add(i+'點'); } return lists; } /** * 明天 后天 點 */ private ArrayList<String> getHourData(){ ArrayList<String> lists=new ArrayList<>(); for (int i=0;i<24;i++){ lists.add(i+'點'); } return lists; } /** * 明天 后天 分 */ private ArrayList<IPickerViewData> getMinData(){ ArrayList<IPickerViewData> dataArrayList=new ArrayList<>(); for (int i=0;i<6;i++){ dataArrayList.add(new PickerViewData((i*10)+'分')); } return dataArrayList; } /** * 明天 后天 */ private ArrayList<ArrayList<IPickerViewData>> getmD(){ ArrayList<ArrayList<IPickerViewData>> d=new ArrayList<>(); for (int i=0;i<24;i++){ d.add(getMinData()); } return d; } /** * 明天 后天 2222 */ private ArrayList<ArrayList<IPickerViewData>> getmD2(){ //14 int max =currentHour(); if (currentMin()>45){ max=max+1; } int value =24-max; ArrayList<ArrayList<IPickerViewData>> d=new ArrayList<>(); for (int i=0;i<value;i++){ if (i==0){d.add(getTodyMinData()); }else {d.add(getMinData()); } } return d; } /** * 明天 后天 分2222 */ private ArrayList<IPickerViewData> getTodyMinData(){ int min = currentMin(); int current=0; if (min>35&&min<=45){ current =0; }else if (min>45&&min<=55){ current=1; } else if (min>55){ current=2; }else if (min<=5){ current=2; }else if (min>5&&min<=15){ current=3; }else if (min>15&&min<=25){ current=4; }else if (min>25&&min<=35){ current=5; } int max =currentHour(); if (max>23&& min>35){ current=5; } ArrayList<IPickerViewData> dataArrayList=new ArrayList<>(); for (int i=current;i<6;i++){ dataArrayList.add(new PickerViewData((i*10)+'分')); } return dataArrayList; } private int currentMin(){ Calendar cal = Calendar.getInstance(); return cal.get(Calendar.MINUTE); } private int currentHour(){ Calendar cal = Calendar.getInstance(); return cal.get(Calendar.HOUR_OF_DAY); }}

到此這篇關(guān)于Android 滾動時間選擇的示例代碼的文章就介紹到這了,更多相關(guān)Android 滾動時間選擇內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Android
相關(guān)文章:
主站蜘蛛池模板: 亚洲精品tv久久久久久久久久 | 国产成人综合久久精品红 | 香蕉视频国产精品人 | 久草在线色站 | 一区二区三区精品国产 | 丁香婷婷亚洲六月综合色 | 全部免费国产潢色一级 | 国产美女操 | 亚洲欧美精品一区二区 | 999www成人 | 1769国内精品观看视频 | 奇米色88欧美一区二区 | 8x华人永久免费 | 国产成人精品男人免费 | 久草美女 | 成人精品一区二区www | 国产资源在线免费观看 | 欧美一级成人影院免费的 | 在线网站你懂得 | 国产精品v欧美精品∨日韩 国产精品www | 国产精品久久久久9999赢消 | 97麻豆精品国产自产在线观看 | 中国黄色网址大全 | 亚洲香蕉久久综合网 | 国产亚洲精品久久久久久小说 | 黄色日韩| 色成人亚洲 | 久久激情五月丁香伊人 | 国产美女极品免费视频 | 亚洲国产欧美国产第一区二区三区 | 桃花福利视频在线观看 | 国产福利区一区二在线观看 | 久久精品国产99精品国产2021 | 日韩一级片在线 | 国产v日韩v欧美v精品专区 | 国产无限免费观看黄网站 | 日韩操片| 性视频播放免费视频 | 亚洲国产第一区二区三区 | 国产精品热久久毛片 | 亚洲国内自拍 |