Android的界面提醒之对话框Dialog

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() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "点击确定", Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public 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() {
@Override
public 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() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
selected[which] = isChecked;
}
});
builder.setPositiveButton("提交", new DialogInterface.OnClickListener() {
@Override
public 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(){
@Override
public 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() {
@Override
public 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,原理是一样的,这里就不在赘述了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值