1.简单的取消、确定
实现代码
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bn=(Button)findViewById(R.id.button1);
// AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
bn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
AlertDialog dialog= builder.setTitle("DialogTitle").setMessage("Message")
.setPositiveButton("confirm", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
TextView show=(TextView)findViewById(R.id.textView1);
show.setText("user click the button of 'confirm'");
}
}).setNegativeButton("cancel",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
TextView show=(TextView)findViewById(R.id.textView1);
show.setText("user click the button of 'cancel'");
}
})
.create();
dialog.show();
}
});
}
2.普通列表
实现代码(不可使用setMessage)
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bn=(Button)findViewById(R.id.button1);
//按钮绑定监听事件
bn.setOnClickListener(new View.OnClickListener() {
final String[] arry=new String[]{"Student","Teacher","Headmaster"};
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
AlertDialog dialog=builder.setIcon(R.drawable.ic_launcher).setTitle("DialogTitle")
//.setMessage("Message") 这里不可以使用冲突
.setItems(arry,new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
TextView show=(TextView)findViewById(R.id.textView1);
show.setText("you choose "+arry[arg1]);
}
})
.create();
dialog.show();
}
});
}
3.单选
实现代码
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bn=(Button)findViewById(R.id.button1);
//按钮绑定监听事件
bn.setOnClickListener(new View.OnClickListener() {
final String[] arry=new String[]{"Student","Teacher","Headmaster"};
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
AlertDialog dialog= builder.setIcon(R.drawable.ic_launcher).setTitle("DialogTitle")
// .setMessage("Message") 这里不可以使用冲突
//单选框,0指默认第一个选项,为列表设置单击监听事件
.setSingleChoiceItems(arry,0,new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
TextView show=(TextView)findViewById(R.id.textView1);
show.setText("you choose "+arry[arg1]);
}
}).setPositiveButton("ensure", null)
.create();
dialog.show();
}
});
}
4.多选
实现代码
public class MainActivity extends Activity {
final String[] arry=new String[]{"Student","Teacher","Headmaster"};
final boolean[] checkstatus=new boolean[]{true,false,true};//设置第一个和第三个为默认选项,
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bn=(Button)findViewById(R.id.button1);
//按钮绑定监听事件
bn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
AlertDialog dialog= builder.setIcon(R.drawable.ic_launcher).setTitle("DialogTitle")
// .setMessage("Message") 这里不可以使用冲突
//多选框,默认选项,为列表设置单击监听事件
.setMultiChoiceItems(arry,checkstatus,new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1, boolean arg2) {
// TODO Auto-generated method stub
TextView show=(TextView)findViewById(R.id.textView1);
String checked="";
for(int i=0;i<checkstatus.length;i++)
{
if(checkstatus[i])
checked+=arry[i]+",";
}
show.setText("you choose "+checked);
}
}
).setPositiveButton("ensure", null)
.create();
dialog.show();
}
});
}
5.DIY
实现代码
public class MainActivity extends Activity {
final int LIST_DIALOG = 0x113;
final String[] arry = new String[] { "Student", "Teacher", "Headmaster" };
private int[] imageIds = new int[] { R.drawable.ic_launcher,
R.drawable.pic2, R.drawable.pic3 };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bn = (Button) findViewById(R.id.button1);
// 按钮绑定监听事件
bn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
showDialog(LIST_DIALOG);
}
});
}
// 重写onCreateDialog方法
@Override
public Dialog onCreateDialog(int id, Bundle state) {
// 判断需要生成对话框的类型
switch (id) {
case LIST_DIALOG:
Builder b = new AlertDialog.Builder(this);
// 设置对话框的图标
b.setIcon(R.drawable.pic2)
// 对话框标题
.setTitle("Title");
// 创建一个List集合,List集合的元素是Map
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
for (int i = 0; i < arry.length; i++) {
Map<String, Object> listitem = new HashMap<String, Object>();
listitem.put("header", imageIds[i]);
listitem.put("personName", arry[i]);
list.add(listitem);
}
// 创建一个SimpleAdapter,引用另一个login.xml布局
SimpleAdapter simpleAdapter = new SimpleAdapter(this, list,
R.layout.login, new String[] { "header", "personName" },
new int[] { R.id.imageView1, R.id.textView1 });
// 为对话框设置多个列表
b.setAdapter(simpleAdapter, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
TextView show = (TextView) findViewById(R.id.show);
ImageView img = (ImageView) findViewById(R.id.imageView1);
show.setText("your role is " + arry[arg1]);
img.setImageResource(imageIds[arg1]);
}
});
// 创建对话框
return b.create();
}
return null;
}