Dialog的实现与分类(不全)

来源:互联网 发布:延保 知乎 编辑:程序博客网 时间:2024/06/06 05:39

实现简单的基本功能,先写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 = { "男", "程序猿", "女", "女博士" };@Overrideprotected 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);}@Overridepublic 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() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(context, "你点击了确定", Toast.LENGTH_SHORT).show();}});//设置取消按钮builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic 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() {@Overridepublic 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() {@Overridepublic 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() {@Overridepublic 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();

运行结果如图所示



原创粉丝点击