AlertDialog使用详解
- 普通的对话框
final Builder builder = new AlertDialog.Builder(this);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
builder.setIcon(R.drawable.ic_launcher);
builder.setTitle("普通对话框");
builder.setMessage("这里是Message");
builder.setPositiveButton("OK", new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "点击OK", Toast.LENGTH_LONG).show();
}
});
builder.setNegativeButton("Cancel", new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "点击Cancel", Toast.LENGTH_LONG).show();
}
});
builder.create().show();
}
});
效果图如下:
- 单选对话框
final Builder builder = new AlertDialog.Builder(this);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
builder.setIcon(R.drawable.ic_launcher);
builder.setTitle("单选对话框");
builder.setSingleChoiceItems(new String[]{"红色","黄色","蓝色"},0,//默认选中第一个
null);
builder.create().show();
}
});
效果图如下:
3 多选对话框
final Builder builder = new AlertDialog.Builder(this);
boolean[] b = new boolean[]{true, true, false};//初始化选中状态
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
builder.setIcon(R.drawable.ic_launcher);
builder.setTitle("多选对话框");
// 多选
builder.setMultiChoiceItems(new String[]{"红色", "黄色", "蓝色"}, b, new OnMultiChoiceClickListener() {
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
Toast.makeText(getApplicationContext(), "" + b[0] + b[1] + b[2], 1000).show();
}
});
builder.create().show();
}
});
效果图如下:
4.自定义对话框:
final Builder builder = new AlertDialog.Builder(this);
btn4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final RelativeLayout inflate = (RelativeLayout) getLayoutInflater().inflate(R.layout.item, null);
builder.setIcon(R.drawable.ic_launcher);
builder.setTitle("自定义对话框");
builder.setView(inflate);//自定义的布局view
builder.setPositiveButton("OK", new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
EditText usernameET = (EditText) inflate.findViewById(R.id.editText1);
EditText pwdET = (EditText) inflate.findViewById(R.id.editText2);
Toast.makeText(
MainActivity.this,
usernameET.getText().toString() + ":" + pwdET.getText().toString(),
Toast.LENGTH_LONG).show();
}
});
builder.setNegativeButton("Cancel", new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
builder.create().show();
}
});
效果图如下: