AlertDialog的初步了解

AlertDialog类的功能十分强大,可以生成带按钮的提示对话框,还可以生成带列表的列表对话框。
    1、带确定,中立和取消三个按钮的提示对话框。按钮根据需要添加
    2、带列表的对话框
    3、带多个单选列表项和n个按钮的列表对话框
    4、带多个多选列表项和n个按钮的列表对话框

AlertDialog类
    构造方法:该类没有构造方法,需要用AlertDialog.Builder这个类来创建。
    常用方法:
          dialog .setTitle("标题"): 用于给对话框设置标题
          dialog .setMessage("猜猜猜"): 用于提示对话框要显示的内容
     dialog .setIcon(R.drawable.ic_launcher) 为对话框 设置 图片
          dialog .setButton(AlertDialog.BUTTON_POSITIVE"确定"new OnClickListener() {}):    设置按钮,最多只能有三个按钮
          dialog .show(): 让对话框显示出来

AlertDialog.Builder类:
    构造方法:
          new  AlertDialog.Builder( context ): 就是构造方法
    常用方法:
          builder .setTitle("标题"): 用于给对话框设置标题
          builder .setMessage("猜猜猜"): 用于提示对话框要显示的内容
     builder .setIcon(R.drawable.ic_launcher) 为对话框 设置 图片
          builder.setNegativeButton( text listener): 为对话框 设置确定按钮,其他两个一样的
          builder .setItems( items new DialogInterface.OnClickListener() {} ): 用于给对话框添加列表项
          builder .setSingleChoiceItems( items , 0, new DialogInterface.OnClickListener() { } ): 用于给对话框添加单选列表项,一般添加一个按钮
          builder .setMultiChoiceItems( items checkedItems new DialogInterface.OnMultiChoiceClickListener() { } ): 用于给对话框添加多选列表项,一般添加一个按钮
          builder .setAdapter(adapter1new DialogInterface.OnClickListener() { } ): 可以用在这儿的是ListAdapter的子类
          builder .setView(v): 用于设置自定义的view
          builder .show(): 使对话框显示
          builder .create(): 生成AlertDialog对象

代码:
    ①三个按钮,继续添加覆盖之前的
  
  
builder = new AlertDialog.Builder(this);
AlertDialog dialog = builder.create();
dialog.setTitle("按钮");
dialog.setMessage("猜猜猜");
dialog.setIcon(R.drawable.ic_launcher);
 
dialog.setButton(AlertDialog.BUTTON_POSITIVE, "确定", new OnClickListener() {
 
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "哟哟 确定", Toast.LENGTH_LONG).show();
}
});
 
dialog.setButton(AlertDialog.BUTTON_NEGATIVE, "取消", new OnClickListener() {
 
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "哟哟 取消", Toast.LENGTH_LONG).show();
}
});
 
dialog.setButton(AlertDialog.BUTTON_NEUTRAL, "中立", new OnClickListener() {
 
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "哟哟 中立", Toast.LENGTH_LONG).show(); }
});
 
dialog.show();
带列表的对话框:
  
  
builder = new AlertDialog.Builder(this);
builder.setItems(items, new DialogInterface.OnClickListener() {
 
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, items[which], Toast.LENGTH_SHORT).show();
}
});
builder.show();
单选的对话框:
  
  
builder = new AlertDialog.Builder(this);
builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {
 
@Override
public void onClick(DialogInterface dialog, int which) {
a = which;
Toast.makeText(MainActivity.this, "点了" + items[a], Toast.LENGTH_SHORT).show();
}
});
 
// 这儿设置的原因是因为只有这样 才能确定哪一项被点击了
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
 
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "点了" + items[a], Toast.LENGTH_SHORT).show();
}
});
builder.show();
多选的对话框:
  
  
builder = new AlertDialog.Builder(this);
builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {
 
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
Toast.makeText(MainActivity.this, items[which], Toast.LENGTH_SHORT).show();
checkedItems[which] = isChecked;
}
});
 
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
 
String choiceStr = "";
 
@Override
public void onClick(DialogInterface dialog, int which) {
for (int i = 0; i < items.length; i++) {
if (checkedItems[i]) {
choiceStr += items[i];
}
}
Toast.makeText(getApplicationContext(), choiceStr, Toast.LENGTH_LONG).show();
}
});
 
builder.show();
使用ArrayAdapter添加数据
  
  
ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);
builder = new AlertDialog.Builder(this);
builder.setAdapter(adapter1, new DialogInterface.OnClickListener() {
 
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, items[which], Toast.LENGTH_SHORT).show();
}
});
builder.show();
使用SimpleAdapter添加的数据:
  
  
SimpleAdapter adapter2 = new SimpleAdapter(this, data, R.layout.dialog_item, new String[] { "Img", "name" },
new int[] { R.id.iv_img, R.id.tv_name });
builder = new AlertDialog.Builder(this);
 
builder.setAdapter(adapter2, new DialogInterface.OnClickListener() {
 
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, items[which], Toast.LENGTH_SHORT).show();
 
}
});
builder.show();
自定义布局:
  
  
builder = new AlertDialog.Builder(this);
View v = getLayoutInflater().inflate(R.layout.login, null);
builder.setView(v);
et_username = (EditText) v.findViewById(R.id.et_username);
et_password = (EditText) v.findViewById(R.id.et_password);
 
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
 
@Override
public void onClick(DialogInterface dialog, int which) {
String username = et_username.getText().toString();
String password = et_password.getText().toString();
Toast.makeText(MainActivity.this, username + " " + password, Toast.LENGTH_SHORT).show();
}
});
 
builder.show();
自定义布局ListView:
  
  
builder = new AlertDialog.Builder(this);
View v = getLayoutInflater().inflate(R.layout.alertdialog_listview, null);
ListView lv_1 = (ListView) v.findViewById(R.id.lv_1);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);
lv_1.setAdapter(adapter);
 
builder.setView(v).setTitle("弹出框").setIcon(R.drawable.ic_launcher).show();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值