AlertDialog的初步了解

来源:互联网 发布:学会python要多久 编辑:程序博客网 时间:2024/05/01 06:37
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(textlistener):为对话框设置确定按钮,其他两个一样的
        builder.setItems(itemsnew DialogInterface.OnClickListener() {}):用于给对话框添加列表项
        builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {}):用于给对话框添加单选列表项,一般添加一个按钮
        builder.setMultiChoiceItems(itemscheckedItemsnew 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
原创粉丝点击