对话框
1.普通对话框AlertDialog ★
特点:不能直接创建对象,需要借助内部类AlertDialog.Builder 来创建对象,从而实现对话框显示的效果
步骤:
1>创建Builder对象
AlertDialog.Builder builder= new Buider(context);
2>设置对话框样子
buider.setTitle();
builder.setIcon();
内容:
builder.setMessage();单一文本
builder.setView();复杂布局
builder.setSingleChoiceItems();单选列表
builder.setMultiChoiceItems();多选列表
3>显示对话框
builder.show();
1)单一文本
.xml
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="click1"
android:text="AlertDialog" />
.java
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//监听器
public void click1(View view) {
Builder builder = new AlertDialog.Builder(this);
builder.setTitle("系统提示");//设置标题
builder.setIcon(android.R.drawable.btn_dialog);
//标题的图片
builder.setMessage("是不是傻");//设置提示内容
/**设置确定和取消按钮
*/
builder.setPositiveButton("确定", new OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(MainActivity.this, "你确实傻", 0).show();//toast一下
}
});
builder.setNegativeButton("取消", new OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "你还是傻", 0).show();
}
});
builder.show();//加上show()方法,不然你无论怎么点击也出不来
}
2)builder.setView();复杂布局
再建一个item_dialog.xml用来布局格式
<EditText
android:id="@+id/et_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:hint="请输入姓名"
/>
<EditText
android:layout_marginTop="30dp"
android:id="@+id/et_useradress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入地址"
/>
<EditText
android:layout_marginTop="30dp"
android:id="@+id/et_userphone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入电话"
/>
.java文件的主要代码
public void click4(View view) {
Builder bui = new AlertDialog.Builder(this);
bui.setTitle("系统提示");
bui.setIcon(android.R.drawable.btn_dialog);
View inflate = View.inflate(this, R.layout.item_dialog, null);
bui.setView(inflate);//利用setView把你的布局引用到你的对话框中
//找对话框中的布局控件
et_adress = (EditText) inflate
.findViewById(R.id.et_useradress);
et_name = (EditText) inflate.findViewById(R.id.et_username);
et_phone = (EditText) inflate.findViewById(R.id.et_userphone);
bui.setPositiveButton("确定", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// Toast.makeText(MainActivity.this, "点了确定", 0).show();
String name = et_name.getText().toString();
String phone = et_phone.getText().toString();
String address = et_adress.getText().toString();
Toast.makeText(MainActivity.this,
name + "," + phone + "," + address, 0).show();
}
});
bui.setNegativeButton("取消", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "点了取消", 0).show();
}
});
bui.show();//别忘了调用show()方法
}
3)builder.setSingleChoiceItems();单选列表
.xml
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="click5"
android:text="AlertDialog单选文本" />
.java
public void click5(View view){
Builder bui2 = new AlertDialog.Builder(this);
bui2.setTitle("单选的文本框");
bui2.setIcon(R.drawable.ic_launcher);
//创建一个数组
items = new String[] { "貂蝉", "东施", "杨贵妃", "昭君" };
//参数1:你刚才建的数组 参数2:是你建的数组的下标表示被选中 参数3:监听器
bui2.setSingleChoiceItems(items, 2, new OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "你选着的是"+items[arg1], 1).show();
}
});
bui2.show();
}
4.builder.setMultiChoiceItems();多选列表
和上面的单选列表一样不过调用的是setMultiChoiceItems()方法,就不写代码了,把
setMultiChoiceItems()说一下
/**
* bui2.setMultiChoiceItems(itemsId, checkedItems, listener)
* items 是数组
* chckedITems 是boolean类型的 相对应的下标若果为 true 则代表为选中
*/