实现简单的基本功能,先写4种分类,当然还有其他的,这里就不介绍了
基本布局,在首页面添加4个按钮,来实现4中Dialog展示
AlertDialog类的功能很强大,不仅可以生成带按钮提示的对话框,还可以生成带列表的对话框。
通常情况下AlertDialog类只能生成带N个按钮的提示对话框,要生成另外3中就需要用到AlertDialog.Builder类
AlertDialog.Builder常用的方法如下
setTitle() 设置对话框标题
setIcon() 设置图标
setMessage() 设置显示内容
setNegativeButton() 添加取消按钮
setPositiveButton() 添加确定按钮
setNeutralButton() 添加中立按钮
setItems() 添加列表项
setSingleChoiceItems() 添加单选列选项
setMultiChoiceItems() 添加多选列选项
public class MainActivity extends Activity implements OnClickListener {
private Button btn1, btn2, btn3, btn4;
private Context context;
private AlertDialog.Builder builder;
private String[] interest = { "读书", "游泳", "爬山", "健身", "音乐" };
private String[] department = { "研发部", "财务部", "人事部", "销售部" };
private String[] sex = { "男", "程序猿", "女", "女博士" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = this;
btn1 = (Button) findViewById(R.id.btn1);
btn2 = (Button) findViewById(R.id.btn2);
btn3 = (Button) findViewById(R.id.btn3);
btn4 = (Button) findViewById(R.id.btn4);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
btn4.setOnClickListener(this);
}
@Override
public void onClick(View v) {
builder = new AlertDialog.Builder(context);
switch (v.getId()) {
case R.id.btn1:
builder.setTitle("提示标题");
builder.setIcon(R.drawable.ic_launcher);
builder.setMessage("提示内容");
//设置确定按钮
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你点击了确定", Toast.LENGTH_SHORT).show();
}
});
//设置取消按钮
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你点击了取消", Toast.LENGTH_SHORT).show();
}
});
Dialog dialog = builder.create();
dialog.show();
break;
case R.id.btn2:
builder.setTitle("单选对话框");
builder.setIcon(R.drawable.ic_launcher);
builder.setSingleChoiceItems(sex, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你的性别是:" + sex[which], Toast.LENGTH_SHORT).show();
}
});
Dialog dialog1 = builder.create();
dialog1.show();
break;
case R.id.btn3:
builder.setTitle("多选对话框");
builder.setIcon(R.drawable.ic_launcher);
builder.setMultiChoiceItems(interest, null, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if (isChecked) {
Toast.makeText(context, "你喜欢" + interest[which], Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, "你不喜欢" + interest[which], Toast.LENGTH_SHORT).show();
}
}
});
Dialog dialog2 = builder.create();
dialog2.show();
break;
case R.id.btn4:
builder.setTitle("列表对话框");
builder.setIcon(R.drawable.ic_launcher);
builder.setItems(department, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你是选择了" + department[which], Toast.LENGTH_SHORT).show();
}
});
Dialog dialog3 = builder.create();
dialog3.show();
break;
}
}
}
许要注意的是在给按钮添加事件的时候,千万别选错监听了是DialogInterface.OnClickListener().而不是普通按钮的View.OnClickListener();
运行结果如图所示