Android?studio實(shí)現(xiàn)日期?、時(shí)間選擇器與進(jìn)度條
本文實(shí)例為大家分享了Android studio實(shí)現(xiàn)日期 、時(shí)間選擇器與進(jìn)度條,供大家參考,具體內(nèi)容如下
日期選擇器
public void onclick(View v){ ? ? ? ? Calendar calendar=Calendar.getInstance(); ? ? ? ? new DatePickerDialog( this, new DatePickerDialog.OnDateSetListener() { ? ? ? ? ? ? @Override ? ? ? ? ? ? public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) { ? ? ? ? ? ? ? ? String text = "你選擇了:" + year + "年" + (month + 1) + "月" + dayOfMonth + "日"; ? ? ? ? ? ? ? ? Toast.makeText( MainActivity.this, text, Toast.LENGTH_SHORT ).show(); ? ? ? ? ? ? } ? ? ? ? } ? ? ? ? ,calendar.get(Calendar.YEAR) ? ? ? ? ,calendar.get(Calendar.MONTH) ? ? ? ? ,calendar.get(Calendar.DAY_OF_MONTH)).show(); ? ? }
注意:此按鈕響應(yīng)需要在按鈕布局文件里面加一句android:onClick="onclick"
時(shí)間選擇器
ProgressDialog一般用于表示當(dāng)前操作比較耗時(shí)間,讓用戶(hù)耐心等待
?public void onclick(View v){ ? ? ? ? Calendar calendar=Calendar.getInstance(); ? ? ? ? new TimePickerDialog( this, new TimePickerDialog.OnTimeSetListener() { ? ? ? ? ? ? @Override ? ? ? ? ? ? public void onTimeSet(TimePicker view, int hourOfDay, int minute) { ? ? ? ? ? ? ? ? String text="你選擇了"+hourOfDay+"時(shí)"+minute+"分"; ? ? ? ? ? ? ? ? Toast.makeText( MainActivity.this, text, Toast.LENGTH_SHORT ).show(); ? ? ? ? ? ? } ? ? ? ? } ? ? ? ? ,calendar.get(Calendar.HOUR_OF_DAY) ? ? ? ? ,calendar.get(Calendar.MINUTE),true).show(); ? ? }
進(jìn)度條
1、圓圈
.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ? ? android:layout_width="match_parent" ? ? android:layout_height="match_parent" ? ? android:orientation="vertical"> ? ? <Button ? ? ? ? android:id="@+id/but" ? ? ? ? android:layout_width="wrap_content" ? ? ? ? android:layout_height="wrap_content" ? ? ? ? android:text="跳轉(zhuǎn)" ? ? ? ? android:onClick="onclick"/> </LinearLayout>
.java:
package com.example.catalogin; ? ? ? ? import android.app.ProgressDialog; ? ? ? ? import android.support.v7.app.AppCompatActivity; ? ? ? ? import android.os.Bundle; ? ? ? ? import android.view.View; public class MainActivity extends AppCompatActivity { ? ? @Override ? ? protected void onCreate(Bundle savedInstanceState) { ? ? ? ? super.onCreate(savedInstanceState); ? ? ? ? setContentView(R.layout.activity_main); ? ? } ? ? ProgressDialog pd; ? ? public void showprogress(){ ? ? ? ? pd=new ProgressDialog(this); ? ? ? ? pd.setTitle( "任務(wù)進(jìn)行中" ); ? ? ? ? pd.setMessage( "請(qǐng)稍后..." ); ? ? ? ? pd.setCancelable( true ); ? ? ? ? pd.setProgressStyle( ProgressDialog.STYLE_SPINNER ); ? ? ? ? pd.show(); ? ? } ? ? public void onclick(View v){//按鈕的一種方法 ? ? ? ? showprogress(); ? ? } }
做一個(gè)小練習(xí)來(lái)模擬一下(可用在刷新列表啥的)
.java代碼改為:
package com.example.catalogin; ? ? ? ? import android.app.ProgressDialog; ? ? ? ? import android.os.Handler; ? ? ? ? import android.os.Message; ? ? ? ? import android.support.v7.app.AppCompatActivity; ? ? ? ? import android.os.Bundle; ? ? ? ? import android.view.View; public class MainActivity extends AppCompatActivity { ? ? @Override ? ? protected void onCreate(Bundle savedInstanceState) { ? ? ? ? super.onCreate(savedInstanceState); ? ? ? ? setContentView(R.layout.activity_main); ? ? } ? ? ProgressDialog pd; ? ? public void showprogress(){ ? ? ? ? pd=new ProgressDialog(this); ? ? ? ? pd.setTitle( "任務(wù)進(jìn)行中" ); ? ? ? ? pd.setMessage( "請(qǐng)稍后..." ); ? ? ? ? pd.setCancelable( true ); ? ? ? ? pd.setProgressStyle( ProgressDialog.STYLE_SPINNER ); ? ? ? ? pd.show(); ? ? } ? ? Handler handler=new Handler( ?){ ? ? ? ? @Override ? ? ? ? public void handleMessage(Message msg) {//在主線(xiàn)程(UI) ? ? ? ? ? ? pd.dismiss();//發(fā)送完關(guān)閉 ? ? ? ? } ? ? }; ? ? public void onclick(View v){ ? ? ? ? showprogress(); ? ? ? ? //新建一個(gè)子線(xiàn)程 ? ? ? ? new Thread(){//new Thread 說(shuō)明并行進(jìn)行,在小路跑 ? ? ? ? ? ? public void run(){ ? ? ? ? ? ? ? ? for(int i=0;i<=3;i++){ ? ? ? ? ? ? ? ? ? ? try{ ? ? ? ? ? ? ? ? ? ? ? ? Thread.sleep( 1000 ); ? ? ? ? ? ? ? ? ? ? } catch (InterruptedException e) { ? ? ? ? ? ? ? ? ? ? ? ? e.printStackTrace(); ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? handler.sendEmptyMessage( 0 );//向主干道發(fā)送消息,子線(xiàn)程 ? ? ? ? ? ? } ? ? ? ? }.start(); ? ? } }
效果為自己跑完三秒之后就自動(dòng)消失
2、水平
.java 文件代碼改為:
package com.example.catalogin; ? ? ? ? import android.app.ProgressDialog; ? ? ? ? import android.os.Handler; ? ? ? ? import android.os.Message; ? ? ? ? import android.support.v7.app.AppCompatActivity; ? ? ? ? import android.os.Bundle; ? ? ? ? import android.view.View; public class MainActivity extends AppCompatActivity { ? ? @Override ? ? protected void onCreate(Bundle savedInstanceState) { ? ? ? ? super.onCreate(savedInstanceState); ? ? ? ? setContentView(R.layout.activity_main); ? ? } ? ? ProgressDialog pd; ? ? public void showprogress(){ ? ? ? ? pd=new ProgressDialog(this); ? ? ? ? pd.setTitle( "任務(wù)進(jìn)行中" ); ? ? ? ? pd.setMessage( "請(qǐng)稍后..." ); ? ? ? ? pd.setCancelable( true ); ? ? ? ? pd.setProgressStyle( ProgressDialog.STYLE_HORIZONTAL);//風(fēng)格 ? ? ? ? pd.setMax(100);//下載數(shù)量啥的 ? ? ? ? pd.show(); ? ? } ? ? Handler handler=new Handler( ?){//接收 ? ? ? ? @Override ? ? ? ? public void handleMessage(Message msg) {//在主線(xiàn)程(UI) ? ? ? ? ? ? if(msg.what==0)//接受的信息判斷,0結(jié)束 ? ? ? ? ? ? ? ? pd.dismiss();//發(fā)送完關(guān)閉 ? ? ? ? ? ? else if( msg.what==1){ ? ? ? ? ? ? ? ?pd.setProgress( msg.arg1 );//接受的信息判斷如果是1,說(shuō)明進(jìn)度沒(méi)結(jié)束,加一 ? ? ? ? ? ? } ? ? ? ? } ? ? }; ? ? public void onclick(View v){ ? ? ? ? showprogress(); ? ? ? ? //新建一個(gè)子線(xiàn)程 ? ? ? ? new Thread(){//new Thread 說(shuō)明并行進(jìn)行,在小路跑 ? ? ? ? ? ? public void run(){ ? ? ? ? ? ? ? ? for(int i=0;i<=100;i++){ ? ? ? ? ? ? ? ? ? ? try{ ? ? ? ? ? ? ? ? ? ? ? ? Thread.sleep( 100 ); ? ? ? ? ? ? ? ? ? ? } catch (InterruptedException e) { ? ? ? ? ? ? ? ? ? ? ? ? e.printStackTrace(); ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? Message mag=Message.obtain(); ? ? ? ? ? ? ? ? ? ? mag.arg1=i;//增長(zhǎng)的進(jìn)度丟進(jìn)去 ? ? ? ? ? ? ? ? ? ? mag.what=1;//中間發(fā)送消息都是一,直到0結(jié)束,所以不結(jié)束 ? ? ? ? ? ? ? ? ? ? handler.sendMessage( mag );//增長(zhǎng)的信息每次發(fā)送一次 ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? handler.sendEmptyMessage( 0 );//向主干道發(fā)送消息,子線(xiàn)程 ? ? ? ? ? ? } ? ? ? ? }.start(); ? ? } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android開(kāi)發(fā)手冊(cè)Button實(shí)現(xiàn)selector選擇器
- Android開(kāi)發(fā)雙向滑動(dòng)選擇器范圍SeekBar實(shí)現(xiàn)
- Android中的TimePickerView(時(shí)間選擇器)的用法詳解
- Android PicSelector圖片選擇器小功能
- Android實(shí)現(xiàn)拼多多地址選擇器
- Android如何實(shí)現(xiàn)年月選擇器功能
- Android實(shí)現(xiàn)四級(jí)聯(lián)動(dòng)地址選擇器
- Android自定義酒店日期選擇器
- Jetpack Compose之選擇器使用實(shí)例講解
相關(guān)文章
Android性能優(yōu)化之JVMTI與內(nèi)存分配
這篇文章主要為大家介紹了Android性能優(yōu)化之JVMTI與內(nèi)存分配,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10Android 自定義View實(shí)現(xiàn)單擊和雙擊事件的方法
下面小編就為大家?guī)?lái)一篇Android 自定義View實(shí)現(xiàn)單擊和雙擊事件的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09Android 仿小米鎖屏實(shí)現(xiàn)九宮格解鎖功能(無(wú)需圖片資源)
最近公司要求做個(gè)九宮格解鎖,本人用的是小米手機(jī),看著他那個(gè)設(shè)置鎖屏九宮格很好看,就做了該組件,不使用圖片資源,純代碼實(shí)現(xiàn),感興趣的朋友參考下吧2016-12-12Android仿天貓橫向滑動(dòng)指示器功能的實(shí)現(xiàn)
這篇文章主要介紹了Android仿天貓橫向滑動(dòng)指示器,Android開(kāi)發(fā)中會(huì)有很多很新奇的交互,比如天貓商城的首頁(yè)頭部的分類(lèi),使用的是GridLayoutManager+橫向指示器實(shí)現(xiàn)的,需要的朋友可以參考下2022-08-08android viewpager實(shí)現(xiàn)豎直滑動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了android viewpager實(shí)現(xiàn)豎直滑動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07flutter項(xiàng)目引入iconfont阿里巴巴圖標(biāo)
這篇文章主要為大家介紹了flutter項(xiàng)目引入iconfont阿里巴巴圖標(biāo)的過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05創(chuàng)建Android庫(kù)的方法及Android .aar文件用法小結(jié)
本文給大家介紹了創(chuàng)建Android庫(kù)的方法及Android中 .aar文件生成方法與用法詳解,涉及到創(chuàng)建庫(kù)模塊操作步驟及開(kāi)發(fā)注意事項(xiàng),需要的朋友參考下吧2017-12-12Android入門(mén)之利用OKHttp實(shí)現(xiàn)斷點(diǎn)續(xù)傳功能
這篇文章主要為大家詳細(xì)介紹了Android如何使用OKHttp多線(xiàn)程制作像迅雷一樣的斷點(diǎn)續(xù)傳功能,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2023-01-01