Android?studio實現(xiàn)日期?、時間選擇器與進度條
本文實例為大家分享了Android studio實現(xià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"
時間選擇器
ProgressDialog一般用于表示當前操作比較耗時間,讓用戶耐心等待
?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+"時"+minute+"分"; ? ? ? ? ? ? ? ? Toast.makeText( MainActivity.this, text, Toast.LENGTH_SHORT ).show(); ? ? ? ? ? ? } ? ? ? ? } ? ? ? ? ,calendar.get(Calendar.HOUR_OF_DAY) ? ? ? ? ,calendar.get(Calendar.MINUTE),true).show(); ? ? }
進度條
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ù)進行中" ); ? ? ? ? pd.setMessage( "請稍后..." ); ? ? ? ? pd.setCancelable( true ); ? ? ? ? pd.setProgressStyle( ProgressDialog.STYLE_SPINNER ); ? ? ? ? pd.show(); ? ? } ? ? public void onclick(View v){//按鈕的一種方法 ? ? ? ? showprogress(); ? ? } }
做一個小練習(xí)來模擬一下(可用在刷新列表啥的)
.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ù)進行中" ); ? ? ? ? pd.setMessage( "請稍后..." ); ? ? ? ? pd.setCancelable( true ); ? ? ? ? pd.setProgressStyle( ProgressDialog.STYLE_SPINNER ); ? ? ? ? pd.show(); ? ? } ? ? Handler handler=new Handler( ?){ ? ? ? ? @Override ? ? ? ? public void handleMessage(Message msg) {//在主線程(UI) ? ? ? ? ? ? pd.dismiss();//發(fā)送完關(guān)閉 ? ? ? ? } ? ? }; ? ? public void onclick(View v){ ? ? ? ? showprogress(); ? ? ? ? //新建一個子線程 ? ? ? ? new Thread(){//new Thread 說明并行進行,在小路跑 ? ? ? ? ? ? public void run(){ ? ? ? ? ? ? ? ? for(int i=0;i<=3;i++){ ? ? ? ? ? ? ? ? ? ? try{ ? ? ? ? ? ? ? ? ? ? ? ? Thread.sleep( 1000 ); ? ? ? ? ? ? ? ? ? ? } catch (InterruptedException e) { ? ? ? ? ? ? ? ? ? ? ? ? e.printStackTrace(); ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? handler.sendEmptyMessage( 0 );//向主干道發(fā)送消息,子線程 ? ? ? ? ? ? } ? ? ? ? }.start(); ? ? } }
效果為自己跑完三秒之后就自動消失
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ù)進行中" ); ? ? ? ? pd.setMessage( "請稍后..." ); ? ? ? ? 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) {//在主線程(UI) ? ? ? ? ? ? if(msg.what==0)//接受的信息判斷,0結(jié)束 ? ? ? ? ? ? ? ? pd.dismiss();//發(fā)送完關(guān)閉 ? ? ? ? ? ? else if( msg.what==1){ ? ? ? ? ? ? ? ?pd.setProgress( msg.arg1 );//接受的信息判斷如果是1,說明進度沒結(jié)束,加一 ? ? ? ? ? ? } ? ? ? ? } ? ? }; ? ? public void onclick(View v){ ? ? ? ? showprogress(); ? ? ? ? //新建一個子線程 ? ? ? ? new Thread(){//new Thread 說明并行進行,在小路跑 ? ? ? ? ? ? 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;//增長的進度丟進去 ? ? ? ? ? ? ? ? ? ? mag.what=1;//中間發(fā)送消息都是一,直到0結(jié)束,所以不結(jié)束 ? ? ? ? ? ? ? ? ? ? handler.sendMessage( mag );//增長的信息每次發(fā)送一次 ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? handler.sendEmptyMessage( 0 );//向主干道發(fā)送消息,子線程 ? ? ? ? ? ? } ? ? ? ? }.start(); ? ? } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android性能優(yōu)化之JVMTI與內(nèi)存分配
這篇文章主要為大家介紹了Android性能優(yōu)化之JVMTI與內(nèi)存分配,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10Android 自定義View實現(xiàn)單擊和雙擊事件的方法
下面小編就為大家?guī)硪黄狝ndroid 自定義View實現(xiàn)單擊和雙擊事件的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-09Android 仿小米鎖屏實現(xiàn)九宮格解鎖功能(無需圖片資源)
最近公司要求做個九宮格解鎖,本人用的是小米手機,看著他那個設(shè)置鎖屏九宮格很好看,就做了該組件,不使用圖片資源,純代碼實現(xiàn),感興趣的朋友參考下吧2016-12-12android viewpager實現(xiàn)豎直滑動效果
這篇文章主要為大家詳細介紹了android viewpager實現(xiàn)豎直滑動效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-07-07創(chuàng)建Android庫的方法及Android .aar文件用法小結(jié)
本文給大家介紹了創(chuàng)建Android庫的方法及Android中 .aar文件生成方法與用法詳解,涉及到創(chuàng)建庫模塊操作步驟及開發(fā)注意事項,需要的朋友參考下吧2017-12-12Android入門之利用OKHttp實現(xiàn)斷點續(xù)傳功能
這篇文章主要為大家詳細介紹了Android如何使用OKHttp多線程制作像迅雷一樣的斷點續(xù)傳功能,文中的示例代碼講解詳細,感興趣的可以了解一下2023-01-01