Android日歷控件PickTime代碼實(shí)例
最近做項(xiàng)目,需要設(shè)置用戶的生日,所以做這樣一個(gè)功能。
開(kāi)始發(fā)覺(jué)自帶的DatePicker 很是不好用。
上代碼:
<DatePicker android:android:datePickerMode='spinner' android:calendarViewShown='false' android:layout_marginTop='150dp' android:spinnersShown='true' android:yearListSelectorColor = '@color/colorPrimaryDark' android:layout_width='match_parent' android:layout_height='wrap_content' />
初始化代碼:
DateFormat dateFormat = new SimpleDateFormat('yyyy-MM-dd', Locale.CHINA); Calendar calendar = Calendar.getInstance(Locale.CHINA); datePicker = (DatePicker) findViewById(R.id.dpPicker); int year=calendar.get(Calendar.YEAR); int monthOfYear=calendar.get(Calendar.MONTH); int dayOfMonth=calendar.get(Calendar.DAY_OF_MONTH); datePicker.init(year, monthOfYear, dayOfMonth, new DatePicker.OnDateChangedListener() { @Override public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) { // 獲取一個(gè)日歷對(duì)象,并初始化為當(dāng)前選中的時(shí)間 Calendar calendar = Calendar.getInstance(); calendar.set(year, monthOfYear, dayOfMonth); SimpleDateFormat format = new SimpleDateFormat( 'yyyy年MM月dd日 HH:mm'); Toast.makeText(MainActivity.this, format.format(calendar.getTime()), Toast.LENGTH_SHORT) .show(); } });
結(jié)果效果如此:
android:datePickerMode='spinner'
這個(gè)屬性會(huì)切換為日歷選擇狀態(tài)。
還容易出現(xiàn)英文這種鬼東西,于是不在研究,直接找插件去。
于是發(fā)現(xiàn)PickTime 很好用的,來(lái)說(shuō)下使用方法:
//日期選擇控件 implementation ’com.github.codbking:PickTime:v1.0.1’ //item控件 implementation ’com.github.codbking:AllItemView:v1.0.0’
然后是調(diào)用代碼:
package controller.hzl.com.timetest;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.DatePicker;import android.widget.TimePicker;import android.widget.Toast;import com.codbking.view.ItemView;import com.codbking.widget.DatePickDialog;import com.codbking.widget.bean.DateType;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Locale;public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private DatePicker datePicker; private TimePicker timePicker; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ItemView xx = findViewById(R.id.item4); xx.setOnClickListener(this); DateFormat dateFormat = new SimpleDateFormat('yyyy-MM-dd', Locale.CHINA); Calendar calendar = Calendar.getInstance(Locale.CHINA); datePicker = (DatePicker) findViewById(R.id.dpPicker); int year=calendar.get(Calendar.YEAR); int monthOfYear=calendar.get(Calendar.MONTH); int dayOfMonth=calendar.get(Calendar.DAY_OF_MONTH); datePicker.init(year, monthOfYear, dayOfMonth, new DatePicker.OnDateChangedListener() { @Override public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) { // 獲取一個(gè)日歷對(duì)象,并初始化為當(dāng)前選中的時(shí)間 Calendar calendar = Calendar.getInstance(); calendar.set(year, monthOfYear, dayOfMonth); SimpleDateFormat format = new SimpleDateFormat( 'yyyy年MM月dd日 HH:mm'); Toast.makeText(MainActivity.this, format.format(calendar.getTime()), Toast.LENGTH_SHORT) .show(); } }); } private void showDatePickDialog(DateType type) { DatePickDialog dialog = new DatePickDialog(this); //設(shè)置上下年分限制 dialog.setYearLimt(5); //設(shè)置標(biāo)題 dialog.setTitle('選擇時(shí)間'); //設(shè)置類型 dialog.setType(type); //設(shè)置消息體的顯示格式,日期格式 dialog.setMessageFormat('yyyy-MM-dd'); //設(shè)置選擇回調(diào) dialog.setOnChangeLisener(null); //設(shè)置點(diǎn)擊確定按鈕回調(diào) dialog.setOnSureLisener(null); dialog.show(); } @Override public void onClick(View view) { switch (view.getId()) { case R.id.item4:showDatePickDialog(DateType.TYPE_YMD);break; } }}
效果如圖:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. JavaScript實(shí)現(xiàn)組件化和模塊化方法詳解2. 通過(guò)CSS數(shù)學(xué)函數(shù)實(shí)現(xiàn)動(dòng)畫(huà)特效3. .NET SkiaSharp 生成二維碼驗(yàn)證碼及指定區(qū)域截取方法實(shí)現(xiàn)4. CSS hack用法案例詳解5. ASP.NET MVC通過(guò)勾選checkbox更改select的內(nèi)容6. idea開(kāi)啟代碼提示功能的方法步驟7. 使用FormData進(jìn)行Ajax請(qǐng)求上傳文件的實(shí)例代碼8. Javaweb工程運(yùn)行報(bào)錯(cuò)HTTP Status 404解決辦法9. PHP循環(huán)與分支知識(shí)點(diǎn)梳理10. JavaScrip簡(jiǎn)單數(shù)據(jù)類型隱式轉(zhuǎn)換的實(shí)現(xiàn)
