import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
private Button yiban;
private Button liebiao;
private Button danxuan;
private Button duoxuan;
private Button zidingyi;
private String[] items;
private String[] items2;
private EditText editText;
private AlertDialog create;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
yiban = (Button) findViewById(R.id.normal_dialog);
liebiao = (Button) findViewById(R.id.liebiao_dialog);
danxuan = (Button) findViewById(R.id.single_dialog);
duoxuan = (Button) findViewById(R.id.multi_dialog);
zidingyi = (Button) findViewById(R.id.custon_dialog);
yiban.setOnClickListener(this);
liebiao.setOnClickListener(this);
danxuan.setOnClickListener(this);
duoxuan.setOnClickListener(this);
zidingyi.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.normal_dialog:
yiban();
break;
case R.id.liebiao_dialog:
liebiao();
break;
case R.id.single_dialog:
danxuan();
break;
case R.id.multi_dialog:
duoxuan();
break;
case R.id.custon_dialog:
zidingyi();
break;
default:
break;
}
}
private void zidingyi() {
// 第一步:拿到AlertDialog
Builder builder = new AlertDialog.Builder(MainActivity.this);
create = builder.create();
// 第二步:拿到AlertDialog的布局
View view = View.inflate(MainActivity.this,R.layout.custom_dialog_layout, null);
// 第三步:把布局设置到AlertDialog上边
create.setView(view);
// 第四步:把alertDialog显示出来
create.show();
editText = (EditText) view.findViewById(R.id.edit);
Button queding = (Button) view.findViewById(R.id.queding);
Button quxiao =(Button) view.findViewById(R.id.quxiao);
queding.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,editText.getText().toString(), 0).show();
create.dismiss();
}
});
quxiao.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
create.dismiss();
}
});
}
private void duoxuan() {
final Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("你喜欢谁");
builder.setIcon(R.drawable.ic_launcher);
items2 = new String[]{"高圆圆","范冰冰","李冰冰"};
// 设置多选对话框,某一项是否选中的数组
boolean[] checkedItems = new boolean[]{true,false,true};
builder.setMultiChoiceItems(items2, checkedItems,new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if (isChecked) {
Toast.makeText( MainActivity.this,"喜欢"+items2[which], 0).show();
}
}
});
builder.setPositiveButton("确定",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 多选对话框消失
builder.create().dismiss();
}
});
builder.create().show();
}
private void danxuan() {
Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("请选择性别");
builder.setIcon(R.drawable.ic_launcher);
// 添加单选对话框 的数据
String[] item = new String[]{"男","女"};
builder.setSingleChoiceItems(item,0,new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case 0:
Toast.makeText(MainActivity.this,"您选择了男",0).show();
break;
case 1:
Toast.makeText(MainActivity.this, "您选择了女",0).show();
default:
break;
}
}
});
builder.setPositiveButton("确定",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"完成",0).show();
}
});
builder.create().show();
}
private void liebiao() {
// 列表对话框
Builder builder2 = new AlertDialog.Builder(MainActivity.this);
builder2.setTitle("今天做了几道题");
builder2.setIcon(R.drawable.ic_launcher);
// 为列表对话框添加数据
items = new String[]{"一道题","两道题","三道题"};
builder2.setItems(items,new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case 0:
Toast.makeText(MainActivity.this,"一道题", 0).show();
break;
case 1:
Toast.makeText(MainActivity.this, "两道题", 0).show();
break;
case 2:
Toast.makeText(MainActivity.this, "三道题", 0).show();
default:
break;
}
}
});
builder2.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"消失", 0).show();
}
});
builder2.create().show();
}
private void yiban() {
// 创建一个对话框的构造器
Builder builder = new AlertDialog.Builder(MainActivity.this);
// 为对话框加标题
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(MainActivity.this, "做完了", 0).show();
}
});
// 取消按钮
builder.setNegativeButton("取消",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"没有", 0).show();
}
});
// 保持中立的按钮
builder.setNeutralButton("忽略", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"保持中立",0).show();
}
});
// 创建并展示出来对话框
builder.create().show();
}
}
//自定义dialog的view布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="您的名字是"
android:layout_margin="10dp"/>
<EditText
android:id="@+id/edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入姓名"/>
<LinearLayout
android:id="@+id/linear"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/queding"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="确定"/>
<Button
android:id="@+id/quxiao"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="取消"/>
</LinearLayout>
</LinearLayout>