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

 更新时间:2022年01月20日 08:14:58   作者:Be your bubble  
这篇文章主要为大家详细介绍了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();
    }
}

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

相关文章

  • Android自定义边缘凹凸的卡劵效果

    Android自定义边缘凹凸的卡劵效果

    这篇文章主要介绍了Android自定义边缘凹凸的卡劵效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Android简单修改原有应用和添加应用的方法

    Android简单修改原有应用和添加应用的方法

    这篇文章主要介绍了Android简单修改原有应用和添加应用的方法,涉及Android工程项目中针对源码的修改及资源文件的编译等操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-10-10
  • Retrofit网络请求和响应处理重点分析讲解

    Retrofit网络请求和响应处理重点分析讲解

    这篇文章主要介绍了Retrofit网络请求和响应处理重点分析,在使用 Retrofit发起网络请求时,我们可以通过定义一个接口并使用Retrofit的注解来描述这个接口中的请求,Retrofit会自动生成一个实现该接口的代理对象
    2023-03-03
  • Flutter异步操作实现流程详解

    Flutter异步操作实现流程详解

    在Flutter中,借助 FutureBuilder 组件和 StreamBuilder 组件,可以非常方便地完成异步操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-09-09
  • Android实例代码理解设计模式SOLID六大原则

    Android实例代码理解设计模式SOLID六大原则

    程序设计领域, SOLID (单一功能、开闭原则、里氏替换、接口隔离以及依赖反转)是由罗伯特·C·马丁在21世纪早期 引入的记忆术首字母缩略字,指代了面向对象编程和面向对象设计的基本原则
    2021-10-10
  • Android 中TextView的使用imageview被压缩问题解决办法

    Android 中TextView的使用imageview被压缩问题解决办法

    这篇文章主要介绍了Android 中TextView的使用imageview被压缩问题解决办法的相关资料,需要的朋友可以参考下
    2017-04-04
  • 浅谈一下Android的Activity

    浅谈一下Android的Activity

    这篇文章主要介绍了浅谈一下Android的Activity,活动是所有安卓应用程序的门面,凡事你在应用中看到的东西,都是放到活动中的,需要的朋友可以参考下
    2023-04-04
  • Android实现悬浮窗全系统版本

    Android实现悬浮窗全系统版本

    这篇文章主要为大家详细介绍了Android实现悬浮窗全系统版本,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • Android利用广播接收器实现自动填充短信验证码

    Android利用广播接收器实现自动填充短信验证码

    这篇文章主要为大家详细介绍了Android利用广播接收器实现自动填充短信验证码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Android系统图片分享工具类

    Android系统图片分享工具类

    这篇文章主要为大家详细介绍了Android系统自带分享图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01

最新评论