Android中常用的三个Dialog弹窗总结解析
作者:青素i
自己虽然一直使用过dialog,但是一直都是复制、粘贴;不清楚dialog的具体用途,这次趁着有时间,总结一下具体用法,感兴趣的朋友跟着小编来看看吧
ProgressDialog
private void showProgressDialog(){ progressDialog = new ProgressDialog(DialogDemo.this); //设置提示信息 progressDialog.setTitle("提示"); progressDialog.setIcon(R.mipmap.touxiang0); progressDialog.setMessage("正在处理中"); //是否用过返回键取消 progressDialog.setCancelable(true); //碰触弹框之外的地方取消 progressDialog.setCanceledOnTouchOutside(true); //显示 progressDialog.show(); }
DatePickerDialog
//日期 private void datePickerDialog(){ if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N){ DatePickerDialog datePickerDialog = new DatePickerDialog(DialogDemo.this); datePickerDialog.setOnDateSetListener(new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) { Toast.makeText(DialogDemo.this,year+"年"+(month+1)+"月"+dayOfMonth+"日",Toast.LENGTH_SHORT).show(); } }); datePickerDialog.show(); }else { Toast.makeText(DialogDemo.this,"版本过低",Toast.LENGTH_SHORT).show(); } }
TimePickerDialog
//时间 private void timePickerDialog(){ //获得日历的实列 Calendar calendar = Calendar.getInstance(); //设置当前时间 calendar.setTimeInMillis(System.currentTimeMillis()); //获取时分 int hour = calendar.get(Calendar.HOUR_OF_DAY); int minute = calendar.get(Calendar.MINUTE); //第三、四个参数初始时分 第五个参数是否为24小时显示 TimePickerDialog time = new TimePickerDialog(DialogDemo.this, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { Toast.makeText(DialogDemo.this,"Hour"+hourOfDay+"minute"+minute,Toast.LENGTH_SHORT).show(); } },hour,minute,true); time.show(); }
布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:orientation="vertical" android:gravity="center_horizontal" > <Button android:id="@+id/btnProgress" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="35dp" android:backgroundTint="#64D7E6" android:text="提示" android:textSize="35sp" /> <Button android:id="@+id/btnDatePicker" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="35dp" android:backgroundTint="#64D7E6" android:text="日期" android:textSize="35sp" /> <Button android:id="@+id/btnTimePicker" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="35dp" android:backgroundTint="#64D7E6" android:text="时间" android:textSize="35sp" /> </LinearLayout>
完整代码
import androidx.appcompat.app.AppCompatActivity; import android.app.DatePickerDialog; import android.app.ProgressDialog; import android.app.TimePickerDialog; import android.os.Build; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.DatePicker; import android.widget.TimePicker; import android.widget.Toast; import java.util.Calendar; public class DialogDemo extends AppCompatActivity { Button mBtnProgress,mBtnDatePicker,mBtnTimePicker; ProgressDialog progressDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_dialog_demo); initView(); MyOnClick myOnClick = new MyOnClick(); mBtnProgress.setOnClickListener(myOnClick); mBtnDatePicker.setOnClickListener(myOnClick); mBtnTimePicker.setOnClickListener(myOnClick); } private void initView(){ mBtnProgress = findViewById(R.id.btnProgress); mBtnDatePicker = findViewById(R.id.btnDatePicker); mBtnTimePicker = findViewById(R.id.btnTimePicker); } class MyOnClick implements View.OnClickListener { @Override public void onClick(View v) { switch(v.getId()){ case R.id.btnProgress: showProgressDialog(); break; case R.id.btnDatePicker: datePickerDialog(); break; case R.id.btnTimePicker: timePickerDialog(); break; } } } private void showProgressDialog(){ progressDialog = new ProgressDialog(DialogDemo.this); //设置提示信息 progressDialog.setTitle("提示"); progressDialog.setIcon(R.mipmap.touxiang0); progressDialog.setMessage("正在处理中"); //是否用过返回键取消 progressDialog.setCancelable(true); //碰触弹框之外的地方取消 progressDialog.setCanceledOnTouchOutside(true); //显示 progressDialog.show(); } //日期 private void datePickerDialog(){ if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N){ DatePickerDialog datePickerDialog = new DatePickerDialog(DialogDemo.this); datePickerDialog.setOnDateSetListener(new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) { Toast.makeText(DialogDemo.this,year+"年"+(month+1)+"月"+dayOfMonth+"日",Toast.LENGTH_SHORT).show(); } }); datePickerDialog.show(); }else { Toast.makeText(DialogDemo.this,"版本过低",Toast.LENGTH_SHORT).show(); } } //时间 private void timePickerDialog(){ //获得日历的实列 Calendar calendar = Calendar.getInstance(); //设置当前时间 calendar.setTimeInMillis(System.currentTimeMillis()); //获取时分 int hour = calendar.get(Calendar.HOUR_OF_DAY); int minute = calendar.get(Calendar.MINUTE); //第三、四个参数初始时分 第五个参数是否为24小时显示 TimePickerDialog time = new TimePickerDialog(DialogDemo.this, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { Toast.makeText(DialogDemo.this,"Hour"+hourOfDay+"minute"+minute,Toast.LENGTH_SHORT).show(); } },hour,minute,true); time.show(); } }
到此这篇关于Android中常用的三个Dialog弹窗总结解析的文章就介绍到这了,更多相关Android Dialog内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!