android对话框和提示框

来源:互联网 发布:java中贪心算法 编辑:程序博客网 时间:2024/06/08 10:48

对话框之前已经掌握了普通对话框(AlertDialog)以及进度条对话框(ProgressDialog)。

除此以外,对话框还支持选择类对话框,包括单选,多选,下拉列表型选项这三种。

同时,对话框还提供了自定义对话框的功能,可以自己将一个已有的布局导入到对话框中显示。

还支持日期和时间选择类的对话框。

先来看选择类的对话框,还是使用AlertDialog,但不再设置Message,改为设置选项。

// 弹出一个选择提示框Builder builder = new Builder(MainActivity.this);builder.setTitle("提示");builder.setItems(new String[] { "查看详情", "打开", "删除" },new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog,int which) {switch (which) {case 0:Toast.makeText(MainActivity.this,"这里是查看详情", Toast.LENGTH_SHORT).show();break;case 1:Toast.makeText(MainActivity.this, "这里可以编写打开文件的操作", Toast.LENGTH_SHORT).show();break;case 2:Toast.makeText(MainActivity.this, "加入删除的操作", Toast.LENGTH_SHORT).show();break;}}});builder.setPositiveButton("关闭", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}});builder.create().show();

还可以使用单选或多选的形式来选择。

builder.setSingleChoiceItems(new String[] { "查看详情", "打开", "删除" }, 0,new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog,int which) {switch (which) {case 0:Toast.makeText(MainActivity.this,"这里是查看详情", Toast.LENGTH_SHORT).show();break;case 1:Toast.makeText(MainActivity.this,"这里可以编写打开文件的操作", Toast.LENGTH_SHORT).show();break;case 2:Toast.makeText(MainActivity.this,"加入删除的操作", Toast.LENGTH_SHORT).show();break;}}});多选builder.setMultiChoiceItems(new String[] { "查看详情", "打开", "删除" }, new boolean[] {false, true, true },new OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog,int which, boolean isChecked) {switch (which) {case 0:Toast.makeText(MainActivity.this,"这里是查看详情 --> " + isChecked, Toast.LENGTH_SHORT).show();break;case 1:Toast.makeText(MainActivity.this,"这里可以编写打开文件的操作 --> " + isChecked, Toast.LENGTH_SHORT).show();break;case 2:Toast.makeText(MainActivity.this,"加入删除的操作 --> " + isChecked, Toast.LENGTH_SHORT).show();break;}}});

日期和时间的选择,这种选择需要通过单独的对话框类来完成。

// 日期选择器, 注意,月份从0开始DatePickerDialog dialog = new DatePickerDialog(MainActivity.this, new OnDateSetListener() {@Overridepublic void onDateSet(DatePicker view, int year,int monthOfYear, int dayOfMonth) {Toast.makeText(MainActivity.this,"设置的日期为: " + year + "-" + (monthOfYear + 1)+ "-" + dayOfMonth,Toast.LENGTH_LONG).show();}}, 2014, 3, 5);dialog.show();// 日期选择器, 注意,月份从0开始TimePickerDialog dialog = new TimePickerDialog(MainActivity.this, new OnTimeSetListener() {@Overridepublic void onTimeSet(TimePicker view,int hourOfDay, int minute) {Toast.makeText(MainActivity.this,"选择的时间为: " + hourOfDay + ":" + minute,Toast.LENGTH_LONG).show();}}, 16, 20, true);dialog.show();

如果想自定义布局来设置到Toast或AlertDialog中,就需要通过LayoutInflater配合setView方法来完成。

Builder builder = new Builder(MainActivity.this);builder.setTitle("提示");builder.setView(LayoutInflater.from(MainActivity.this).inflate(R.layout.page_01, null));builder.setPositiveButton("关闭", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}});builder.create().show();

如果想改为Toast,只需要通过Toast.makeText建立出Toast对象,并调用setView后,再调用show()方法即可。

Toast t = Toast.makeText(MainActivity.this, null,Toast.LENGTH_LONG);t.setView(LayoutInflater.from(MainActivity.this).inflate(R.layout.page_01, null));t.show();


















0 0
原创粉丝点击