Android的界面提醒包括:吐司,对话框等
吐司就比较常见了,调用Toast类的API即可达到
重点就是对话框,对话框在Android中的界面提醒中有很重要的运用:
1.确定取消对话框
在这里有个问题,就是在创建AlertDialog内部类Builder的时候需要传入一个上下文的对象,这里不能使用getApplicationContext(),而必须使用Activity,因为只有一个Activity才能添加一个窗体。 不然会报异常。
public void onClick1(View v){//对话框构建器AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);//三项必设置builder.setTitle("确定取消对话框");builder.setIcon(R.mipmap.ic_launcher);builder.setMessage("确定取消对话框内容");//确定按钮builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, "点击确定", Toast.LENGTH_SHORT).show();}});builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, "点击取消", Toast.LENGTH_SHORT).show();}});//通过构建者获得对话框对象AlertDialog dialog = builder.create();dialog.show();}
2.单选对话框
/*** 创建单选的对话框 singleChoiceItems* @param v*/public void onClick2(View v){AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);builder.setTitle("选择性别");final String[] items = {"男","女","其它"};//-1表示不做默认的选择builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, "点击了"+items[which], Toast.LENGTH_SHORT).show();dialog.dismiss();}});builder.show();}
3.多单选对话框
/*** 多选对话框** @param v*/public void onClick3(View v) {AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);builder.setTitle("选择你爱吃的东西");final String[] items = {"苹果", "香蕉", "葡萄"};//默认被选中的布尔数组final boolean[] selected = {true, false, false};builder.setMultiChoiceItems(items, selected, new DialogInterface.OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which, boolean isChecked) {selected[which] = isChecked;}});builder.setPositiveButton("提交", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {final StringBuffer sb = new StringBuffer();for (int i = 0; i < selected.length; i++) {if (selected[i]) {String item = items[i];sb.append(item);}}Toast.makeText(MainActivity.this, "选择了" + sb.toString(), Toast.LENGTH_SHORT).show();}});builder.show();}
4.进度对话框
/*** 进度对话框* @param v*/public void onClick4(View v){final ProgressDialog pb = new ProgressDialog(MainActivity.this);pb.setTitle("进度");pb.setMessage("正在提交数据");pb.show();//创建模拟线程new Thread(){@Overridepublic void run() {try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}pb.dismiss();}}.start();}
5.进度条对话框
/*** 进度条对话框** @param v*/public void onClick5(View v) {final ProgressDialog pb = new ProgressDialog(MainActivity.this);//设置为进度条,水平进度条pb.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);pb.setTitle("进度条");pb.setMessage("进度条对话框内容");//设置进度条最大值pb.setMax(100);pb.show();new Thread() {@Overridepublic void run() {for (int i = 0; i <= 100; i++) {try {Thread.sleep(300);} catch (InterruptedException e) {e.printStackTrace();}pb.setProgress(i);}pb.dismiss();}}.start();}
还有自定义对话框,就是自定义一个布局,指定view,原理是一样的,这里就不在赘述了。
本文详细介绍了Android中五种常见的对话框实现方式,包括确定取消对话框、单选对话框、多选对话框、进度对话框及进度条对话框,并提供了具体的代码示例。
530

被折叠的 条评论
为什么被折叠?



