Android中的对话框形式大致可分为五种:分别是一般对话框形式,列表对话框形式,单选按钮对话框,多选按钮对话框,自定义对话框。
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/But_One"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="20"
android:text="1" />
<Button
android:id="@+id/But_Two"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="20"
android:text="2" />
<Button
android:id="@+id/But_Three"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="20"
android:text="3" />
<Button
android:id="@+id/But_Four"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="20"
android:text="4" />
<Button
android:id="@+id/But_Five"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="20"
android:text="5" />
<Button
android:id="@+id/But_Six"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="20"
android:text="6" />
</LinearLayout>
图三中自定义 ad_dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_margin="20dp"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="用户名:"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/art_edit"
/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_margin="20dp"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="密 码:"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/art_pass"
/>
</LinearLayout>
</LinearLayout>
MainActivity
package com.example.administrator.myapplication;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
Button But_One,But_Two,But_Three,But_Four,But_Five,But_Six;
private String[] Items= new String[]{"武汉", "上海", "北京", "广州", "深圳", "厦门"};
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
But_One=(Button)findViewById(R.id.But_One);
But_Two=(Button)findViewById(R.id.But_Two);
But_Three=(Button)findViewById(R.id.But_Three);
But_Four=(Button)findViewById(R.id.But_Four);
But_Five=(Button)findViewById(R.id.But_Five);
But_Six=(Button)findViewById(R.id.But_Six);
But_One.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);//生成一个对话框对象
builder.setMessage("确定要退出吗?"); //设置对话框的显示信息
builder.setTitle("提示"); //设置对话框的标题
builder.setPositiveButton("确定",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"确定",Toast.LENGTH_LONG).show();
}
}); //设置第一个按钮的Text,null处也可替换为new OnClickListener() {}
builder.setNegativeButton("取消",null); //设置第二个按钮的Text
builder.create().show();//创建并显示对话框
}
});
But_Two.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder builder= new AlertDialog.Builder(MainActivity.this);//生成一个对话框对象
builder.setIcon( android.R.drawable.btn_star);//设置对话框的图标
builder.setTitle("喜好调查"); //设置对话的标题
builder.setMessage("你喜欢李连杰的电影吗"); //设置对话框的显示信息
builder.setPositiveButton("很喜欢", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"很喜欢",Toast.LENGTH_LONG).show();
}
});
builder.setNeutralButton("一般",null);
builder.setNegativeButton("不喜欢",null);
builder.create().show();
}
});
But_Three.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
builder.setTitle("登录");
//builder.setIcon(android.R.drawable.ic_dialog_info); //设置对话框的图标
final View viewDialog=(View)getLayoutInflater().inflate(R.layout.ad_dialog,null);
builder.setView(viewDialog); //设置对话框中显示一个输入框
builder.setPositiveButton("登录", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
EditText art_edit = (EditText) viewDialog.findViewById(R.id.art_edit);
Toast.makeText(MainActivity.this,art_edit.getText().toString(),Toast.LENGTH_LONG).show();
}
});
builder.setNegativeButton("注册",null);
builder.show();
}
});
But_Four.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this); //生成一个对话框对象
builder.setTitle("单选框"); //设置对话框的标题
builder.setIcon(android.R.drawable.ic_dialog_info); //设置对话框的图标
builder.setSingleChoiceItems( new String[] { "Item1", "Item2" }, 0,null); //设置对话框的单选项
builder.setNegativeButton("取消", null);
builder.create().show();
}
});
But_Five.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this); //生成一个对话框对象
builder.setTitle("复选框"); //设置对话框的标题
builder.setMultiChoiceItems( new String[] { "Item1", "Item2" }, null, null); //设置对话框的复选项
builder.setPositiveButton("确定", null); //设置对话框的第一个按钮"确定"
builder.setNegativeButton("取消", null); //设置对话框的第二个按钮"取消"
builder.show();
}
});
But_Six.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this); //生成一个对话框对象
builder.setTitle("列表框");
builder.setItems(Items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"您选择的是"+Items[which],Toast.LENGTH_LONG).show();
}
});
builder.create().show();
}
});
}
}