Android studio实现日期 、时间选择器与进度条

本文实例为大家分享了Android studio实现日期 、时间选择器与进度条,供大家参考,具体内容如下

日期选择器

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();
    }

注意:此按钮响应需要在按钮布局文件里面加一句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="跳转"
        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( "任务进行中" );
        pd.setMessage( "请稍后..." );
        pd.setCancelable( true );
        pd.setProgressStyle( ProgressDialog.STYLE_SPINNER );
        pd.show();
    }
    public void onclick(View v){//按钮的一种方法
        showprogress();
    }
}

做一个小练习来模拟一下(可用在刷新列表啥的)

.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( "任务进行中" );
        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();//发送完关闭
        }
    };
    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 );//向主干道发送消息,子线程
            }
        }.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( "任务进行中" );
        pd.setMessage( "请稍后..." );
        pd.setCancelable( true );
        pd.setProgressStyle( ProgressDialog.STYLE_HORIZONTAL);//风格
        pd.setMax(100);//下载数量啥的
        pd.show();
    }
    Handler handler=new Handler(  ){//接收
        @Override
        public void handleMessage(Message msg) {//在主线程(UI)
            if(msg.what==0)//接受的信息判断,0结束
                pd.dismiss();//发送完关闭
            else if( msg.what==1){
               pd.setProgress( msg.arg1 );//接受的信息判断如果是1,说明进度没结束,加一
            }
        }
    };

    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;//中间发送消息都是一,直到0结束,所以不结束
                    handler.sendMessage( mag );//增长的信息每次发送一次
                }
                handler.sendEmptyMessage( 0 );//向主干道发送消息,子线程
            }
        }.start();
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android基于wheelView实现自定义日期选择器

    本文实例为大家分享了Android实现自定义日期选择器的具体代码,供大家参考,具体内容如下 项目要求效果图: 要求 "6月20 星期五" 这一项作为一个整体可以滑动,"7时"."48分"分别作为一个滑动整体. 系统自带的DatePicker.TimePicker大家都知道,只有这种效果: 百度了很多,试了NumberPicker等都不行,本来打算自己写.网友推荐了一个开源组件WheelView,下下来试了试,发现他已经定义的很完善了,在他的基础上

  • Android Studio时间选择器的创建方法

    本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 效果显示: 1.创建xml页面(我的项目扣下来的,有的地方会报错要改) <TextView android:id="@+id/consultation_tv_birthdate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_a

  • Android 七种进度条的样式

    当一个应用在后台执行时,前台界面就不会有什么信息,这时用户根本不知道程序是否在执行.执行进度如何.应用程序是否遇到错误终止等,这时需要使用进度条来提示用户后台程序执行的进度.Android系统提供了两大类进度条样式,长形进度条(progress-BarStyleHorizontal) 和圆形进度条(progressBarStyleLarge).进度条用处很多,比如,应用程序装载资源和网络连接时,可以提示用户稍等,这一类进度条只是代表应用程序中某一部分的执行情况,而整个应用程序执行情况呢,则可以通

  • android自定义进度条渐变色View的实例代码

    最近在公司,项目不是很忙了,偶尔看见一个兄台在CSDN求助,帮忙要一个自定义的渐变色进度条,我当时看了一下进度条,感觉挺漂亮的,就尝试的去自定义view实现了一个,废话不说,先上图吧! 这个自定义的view,完全脱离了android自带的ProgressView,并且没使用一张图片,这样就能更好的降低程序代码上的耦合性! 下面我贴出代码  ,大概讲解一下实现思路吧! 复制代码 代码如下: package com.spring.progressview; import android.conten

  • Android时间选择器、日期选择器实现代码

    本文为大家分享了两款选择器,一款可以针对时间进行选择.一款可以针对日期进行选择,供大家参考,具体内容如下 一.时间选择器 1.1.布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.and

  • Android文件下载进度条的实现代码

    main.xml: 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_paren

  • Android Studio实现进度条效果

    本文实例为大家分享了Android Studio实现进度条效果的具体代码,供大家参考,具体内容如下 实验作业 要求一个进度条,进度随机 效果图 xml代码 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://s

  • Android studio圆形进度条 百分数跟随变化

    本文实例为大家分享了Android studio圆形进度条展示的具体代码,供大家参考,具体内容如下 MainActivity import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity impl

  • Android日期选择器对话框DatePickerDialog使用详解

    调用Android原生日期选择器对话框就是DatePickerDialog,具体内容如下 在Android4.4系统上效果如图: 在Android5.0以上效果如图: 1.Activity的onCreate方法中获取当时的年,月,日 Calendar ca = Calendar.getInstance(); mYear = ca.get(Calendar.YEAR); mMonth = ca.get(Calendar.MONTH); mDay = ca.get(Calendar.DAY_OF_M

  • Android中实现Webview顶部带进度条的方法

    写这篇文章,做份备忘,简单滴展示一个带进度条的Webview示例,进度条位于Webview上面. 示例图如下: 主Activity代码: 复制代码 代码如下: package com.droidyue.demo.webviewprogressbar; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.vi

随机推荐