Android如何實(shí)現(xiàn)年月選擇器功能
開發(fā)過(guò)程中,年月的選擇功能還是比較常見的,像這種功能點(diǎn)比較常見,要是每次都要自己手動(dòng)去寫,這無(wú)疑會(huì)耗費(fèi)比較多的時(shí)間與精力,今天給大家介紹一個(gè)第三方庫(kù),使用該庫(kù)來(lái)完成年月選擇器功能。
一、效果圖implementation ’cn.aigestudio.wheelpicker:WheelPicker:1.1.3’2、xml布局文件
<?xml version='1.0' encoding='utf-8'?><android.support.constraint.ConstraintLayout xmlns:android='http://schemas.android.com/apk/res/android' xmlns:app='http://schemas.android.com/apk/res-auto' android:layout_width='match_parent' android:layout_height='200dp' android:background='#ffffff'> <TextView android: android:layout_width='60dp' android:layout_height='40dp' android:gravity='center' android:text='取消' android:textColor='#666666' android:textSize='17sp' app:layout_constraintLeft_toLeftOf='parent' app:layout_constraintTop_toTopOf='parent' /> <TextView android: android:layout_width='60dp' android:layout_height='40dp' android:gravity='center' android:text='確定' android:textColor='#3C76FF' android:textSize='17sp' app:layout_constraintRight_toRightOf='parent' app:layout_constraintTop_toTopOf='parent' /> <View android: android:layout_width='match_parent' android:layout_height='1dp' android:background='#e5e5e5' app:layout_constraintLeft_toLeftOf='parent' app:layout_constraintTop_toBottomOf='@id/cancel' /> <com.aigestudio.wheelpicker.WheelPicker android: android:layout_width='0dp' android:layout_height='0dp' android:layout_marginLeft='30dp' app:layout_constraintBottom_toBottomOf='parent' app:layout_constraintLeft_toLeftOf='parent' app:layout_constraintRight_toLeftOf='@id/mWheelPicker_2' app:layout_constraintTop_toBottomOf='@id/view_line' app:wheel_atmospheric='true' app:wheel_curtain_color='#1886F7' app:wheel_curved='true' app:wheel_cyclic='true' app:wheel_indicator_color='#e5e5e5' app:wheel_item_text_color='#919191' app:wheel_item_text_size='23sp' app:wheel_selected_item_text_color='#000000' /> <com.aigestudio.wheelpicker.WheelPicker android: android:layout_width='0dp' android:layout_height='0dp' android:layout_marginRight='30dp' app:layout_constraintBottom_toBottomOf='parent' app:layout_constraintLeft_toRightOf='@id/mWheelPicker_1' app:layout_constraintRight_toRightOf='parent' app:layout_constraintTop_toTopOf='@id/mWheelPicker_1' app:wheel_atmospheric='true' app:wheel_curtain_color='#1886F7' app:wheel_curved='true' app:wheel_cyclic='true' app:wheel_indicator_color='#e5e5e5' app:wheel_indicator_size='24sp' app:wheel_item_text_color='#919191' app:wheel_item_text_size='23sp' app:wheel_selected_item_text_color='#000000' /></android.support.constraint.ConstraintLayout>3、添加數(shù)據(jù)
List<String> CEOYEAR = new ArrayList<>(); List<String> CEOMONTH = new ArrayList<>(); for (int i = 2000; i < 2051; i++) { CEOYEAR.add(i + ''); } for (int i = 1; i < 13; i++) { CEOMONTH.add(i + ''); }4、設(shè)置選擇器彈出框
/** * @desc : 兩個(gè)滾動(dòng)器 **/ private void showTwoWheelPicker(Context context, final List<String> data1, final List<String> data2, final TwoWheelListener mTwoWheelListener) { final Dialog dialog = getDialog(context); Window window = dialog.getWindow(); window.setGravity(Gravity.BOTTOM); window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); window.setContentView(R.layout.fragment_sami); final WheelPicker wv1 = window.findViewById(R.id.mWheelPicker_1); final WheelPicker wv2 = window.findViewById(R.id.mWheelPicker_2); wv1.setData(data1); wv2.setData(data2); //取消 window.findViewById(R.id.cancel).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); } }); //確定 window.findViewById(R.id.ok).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); if (mTwoWheelListener != null) { mTwoWheelListener.onOk(data1.get(wv1.getCurrentItemPosition()), data2.get(wv2.getCurrentItemPosition())); } } }); } private Dialog getDialog(Context context) { return new AlertDialog.Builder(context, R.style.RoundCornerDialog).setCancelable(false).show(); } private TwoWheelListener mTwoWheelListener = null; public static interface TwoWheelListener { void onOk(String str1, String str2); }5、設(shè)置彈出框dialog樣式
<!--圓角的dialog樣式--> <style name='RoundCornerDialog' parent='@android:style/Theme.Dialog'> <item name='android:windowFrame'>@null</item> <item name='android:windowIsFloating'>true</item> <item name='android:windowIsTranslucent'>true</item> <item name='android:windowNoTitle'>true</item> <item name='android:background'>@android:color/transparent</item> <item name='android:windowBackground'>@android:color/transparent</item> <item name='android:backgroundDimEnabled'>true</item> <item name='android:backgroundDimAmount'>0.6</item></style>6、設(shè)置點(diǎn)擊事件彈出
findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showTwoWheelPicker(AppBarLayoutActivity.this, CEOYEAR, CEOMONTH, new TwoWheelListener() { @Override public void onOk(String str1, String str2) { Toast.makeText(AppBarLayoutActivity.this, str1 + '年' + str2 + '日', Toast.LENGTH_SHORT).show(); } }); } });四、總結(jié)
這個(gè)第三方庫(kù)我這里只是做了簡(jiǎn)單的介紹,還有更多需求的還是去閱讀第三方庫(kù)。
第三方庫(kù)地址:
https://github.com/AigeStudio/WheelPicker
到這里就結(jié)束啦。
以上就是Android如何實(shí)現(xiàn)年月選擇器功能的詳細(xì)內(nèi)容,更多關(guān)于Android實(shí)現(xiàn)年月選擇器功能的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. ASP基礎(chǔ)知識(shí)VBScript基本元素講解2. Python requests庫(kù)參數(shù)提交的注意事項(xiàng)總結(jié)3. IntelliJ IDEA導(dǎo)入jar包的方法4. ajax請(qǐng)求添加自定義header參數(shù)代碼5. Kotlin + Flow 實(shí)現(xiàn)Android 應(yīng)用初始化任務(wù)啟動(dòng)庫(kù)6. vue-electron中修改表格內(nèi)容并修改樣式7. 詳談ajax返回?cái)?shù)據(jù)成功 卻進(jìn)入error的方法8. 使用Python和百度語(yǔ)音識(shí)別生成視頻字幕的實(shí)現(xiàn)9. 使用python 計(jì)算百分位數(shù)實(shí)現(xiàn)數(shù)據(jù)分箱代碼10. python操作mysql、excel、pdf的示例
