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í)間,讓用戶耐心等待
?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í)來模擬一下(可用在刷新列表啥的)
.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) {//在主線程(UI)
? ? ? ? ? ? pd.dismiss();//發(fā)送完關(guān)閉
? ? ? ? }
? ? };
? ? public void onclick(View v){
? ? ? ? showprogress();
? ? ? ? //新建一個(gè)子線程
? ? ? ? new Thread(){//new Thread 說明并行進(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ā)送消息,子線程
? ? ? ? ? ? }
? ? ? ? }.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) {//在主線程(UI)
? ? ? ? ? ? if(msg.what==0)//接受的信息判斷,0結(jié)束
? ? ? ? ? ? ? ? pd.dismiss();//發(fā)送完關(guān)閉
? ? ? ? ? ? else if( msg.what==1){
? ? ? ? ? ? ? ?pd.setProgress( msg.arg1 );//接受的信息判斷如果是1,說明進(jìn)度沒結(jié)束,加一
? ? ? ? ? ? }
? ? ? ? }
? ? };
? ? public void onclick(View v){
? ? ? ? showprogress();
? ? ? ? //新建一個(gè)子線程
? ? ? ? new Thread(){//new Thread 說明并行進(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ā)送消息,子線程
? ? ? ? ? ? }
? ? ? ? }.start();
? ? }
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android開發(fā)手冊(cè)Button實(shí)現(xiàn)selector選擇器
- Android開發(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簡(jiǎn)單修改原有應(yīng)用和添加應(yīng)用的方法
這篇文章主要介紹了Android簡(jiǎn)單修改原有應(yīng)用和添加應(yīng)用的方法,涉及Android工程項(xiàng)目中針對(duì)源碼的修改及資源文件的編譯等操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10
Retrofit網(wǎng)絡(luò)請(qǐng)求和響應(yīng)處理重點(diǎn)分析講解
這篇文章主要介紹了Retrofit網(wǎng)絡(luò)請(qǐng)求和響應(yīng)處理重點(diǎn)分析,在使用?Retrofit發(fā)起網(wǎng)絡(luò)請(qǐng)求時(shí),我們可以通過定義一個(gè)接口并使用Retrofit的注解來描述這個(gè)接口中的請(qǐng)求,Retrofit會(huì)自動(dòng)生成一個(gè)實(shí)現(xiàn)該接口的代理對(duì)象2023-03-03
Android實(shí)例代碼理解設(shè)計(jì)模式SOLID六大原則
程序設(shè)計(jì)領(lǐng)域, SOLID (單一功能、開閉原則、里氏替換、接口隔離以及依賴反轉(zhuǎn))是由羅伯特·C·馬丁在21世紀(jì)早期 引入的記憶術(shù)首字母縮略字,指代了面向?qū)ο缶幊毯兔嫦驅(qū)ο笤O(shè)計(jì)的基本原則2021-10-10
Android 中TextView的使用imageview被壓縮問題解決辦法
這篇文章主要介紹了Android 中TextView的使用imageview被壓縮問題解決辦法的相關(guān)資料,需要的朋友可以參考下2017-04-04
Android實(shí)現(xiàn)懸浮窗全系統(tǒng)版本
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)懸浮窗全系統(tǒng)版本,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11
Android利用廣播接收器實(shí)現(xiàn)自動(dòng)填充短信驗(yàn)證碼
這篇文章主要為大家詳細(xì)介紹了Android利用廣播接收器實(shí)現(xiàn)自動(dòng)填充短信驗(yàn)證碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12

