Android学习笔记之Dialog Notification

Sylvia ·
更新时间:2024-11-10
· 920 次阅读

对话框通知是一种可以与用户进行交互的通知形式,会使当前的活动失焦。

AlertDialog(警告对话框)

用于创建警告对话框。一个警告对话框最多可以包含三个按钮(和/或)一个包含复选框或单选按钮的可选项列表。

使用AlertDialog.Builder子类去创建警告对话框。

AlertDialog.Builder builder = new AlertDialog.Builder(this);

一个警告对话框可以显示三个按钮:

Positive button:确认按钮。 Negative button:取消按钮。 Neutral button:既不是确认也不是取消的按钮。 Button btn = (Button)findViewById(R.id.closeButton); AlertDialog.Builder builder = new AlertDialog.Builder(this); btn.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0){ builder.setTitle("Colse App").setMessage("Do you want to exit?"); //设置确认按钮 builder.setPositiveButton("Yes", new DialogInterface.OnClickListener(){ @Override public void OnClick(DialogInterface dialog, View arg0){ finish(); Toast.makeText(getApplicationContext(), "You choose Yes Action", Toast.LENGTH_LONG).show(); } }); //设置取消按钮 builder.setNegativeButton("No", new DialogInterface.OnClickListener(){ @Override public void OnClick(DialogInterface dialog, View arg0){ dialog.cancel(); Toast.makeText(getApplicationContext(), "You choose No Action", Toast.LENGTH_LONG).show(); } }); builder.show(); } });

还可以实现列表。

protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView text = (TextView)findViewById(R.id.textView1); final String[] items = new String[]{"RED","PINK","BLUE","AQUA","WHITE","BLACK"}; AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Select a Color"); builder.setItems(items, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub text.setText(items[which]); } }); builder.show(); }

做出来的效果是这个样子的。
当运行这个项目的时候,会出现下面的这个界面,弹出一个对话框,选择一个颜色。

在这里插入图片描述
点击“RED”之后,会出现下图的效果。
在这里插入图片描述

ProgressDialog(进度对话框)

用来去显示一个任务的进度。

ProgressDialog pdialog = ProgressDialog.show(MainActivity.this, "Progress Bar", "Loading... Please wait...", true);

第一个变量是范围,第二个变量是对话框的标题,第三个变量是对话框的内容。
这段代码的效果就是会显示如下图所示的对话框。
在这里插入图片描述

DatePickerDialog(日期选择器对话框)

可以在日期选择器对话框中选取一个日期。
在这里插入图片描述
当按下Data Picker按钮之后,会出现一个日期选择器对话框,可以选择日期。

public class MainActivity extends Activity{ Button btn; @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn = (Button)findViewById(R.id.button1); btn.setOnClickListener(new OnClickListener(){ @Override public void onClick(View view){ Calendar calendar = Calendar.getInstance(); showDatePickerDialog(MainActivity.this, calendar); } }); } public void showDatePickerDialog(Activity activity, Calendar calendar){ new DatePickerDialog(activity, new DatePickerDialog.OnDateSetListener(){ @Override public void onDateSet(DatePicker view, int year, int month, int day){ Toast.makeText(MainActivity.this, year+"年"+month+"月"+"day"+"日", Toast.LENGTH_LONG).show(); } }, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)).show(); } }

DatePickerDialog(作用范围, Listener, 年, 月, 日),其中的年月日是初始日期。

TimePickerDialog(时间选择器对话框) public TimePickerDialog (Context context, TimePickerDialog.OnTimeSetListener callBack, int hourOfDay, int minute, boolean is24HourView) /* context是上下文,Activity callBack用户选择完时间之后执行其中的内容 hourOfDay一天当中的小时 minute一小时当中的分钟 is24HourView是否是24小时制 */

下面来举一个例子。

new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener(){ @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { // TODO Auto-generated method stub Toast.makeText(getApplicationContext(), hourOfDay+"时"+minute+"分", Toast.LENGTH_LONG).show(); } }, 21 , 30, true).show();

时间选择器对话框的效果就是如下图所示:
在这里插入图片描述

当按下PickTime按钮时,会弹出一个时间选择的对话框。初始时间就是函数中的hourOfDay:minute。

自定义对话框(CustomDialog)

不用多说了,就是自己设计对话框的内容,比如想让对话框里面有一个图片。
建立自定义对话框的步骤也很简单。

创建自定义对话框的样式 创建一个Dialog对象,并对样式中的相关部件进行处理 Dialog dialog = new Dialog(MainActivity.this); dialog.setContentView(R.layout.custom_dialog); dialog.setTitle("WLCOME"); TextView text = (TextView)dialog.findViewById(R.id.textView); text.setText("I am a Custom Dialog box"); ImageView image = (ImageView)dialog.findViewById(R.id.imageView); image.setImageResource(R.drawable.ic_launcher); dialog.show();

在这里插入图片描述


作者:通心粉Love



android学习 dialog notification Android

需要 登录 后方可回复, 如果你还没有账号请 注册新账号