这篇文章主要为大家详细介绍了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 studio实现日期 、时间选择器与进度条


基础教程推荐
猜你喜欢
- Flutter进阶之实现动画效果(三) 2022-10-28
- MVVMLight项目Model View结构及全局视图模型注入器 2023-05-07
- iOS开发 全机型适配解决方法 2023-01-14
- IOS获取系统相册中照片的示例代码 2023-01-03
- iOS Crash常规跟踪方法及Bugly集成运用详细介绍 2023-01-18
- Android开发Compose集成高德地图实例 2023-06-15
- iOS开发使用XML解析网络数据 2022-11-12
- Android Compose自定义TextField实现自定义的输入框 2023-05-13
- iOS中如何判断当前网络环境是2G/3G/4G/5G/WiFi 2023-06-18
- Android实现短信验证码输入框 2023-04-29