直接附代码了:
package com.example.dialog;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.DialogInterface.OnMultiChoiceClickListener;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Toast;
public class MainActivity extends Activity {
private TextView tv;
private List<Map<String, Object>> list;
private String color=null;
private EditText editText_name,editText_pwd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv=(TextView) findViewById(R.id.textView1);
}
public void click(View view){
switch (view.getId()) {
case R.id.button1://弹出普通的dialog
//创建alertdialog的实例对象
AlertDialog.Builder dialog=new AlertDialog.Builder(MainActivity.this);
dialog.setTitle(R.string.title);//设置dialog的标题
dialog.setIcon(R.drawable.ic_launcher);// 设置dialog的图标
dialog.setMessage("亲,确定要退出吗?");//设置dialog的内容
dialog.create();//创建dialog
dialog.show();//展示dialog
// new AlertDialog.Builder(MainActivity.this).setTitle("").setIcon(R.drawable.f029).setMessage("").create().show();
break;
case R.id.button2://弹出带有按钮的dialog
AlertDialog.Builder dialog2=new AlertDialog.Builder(MainActivity.this);
dialog2.setTitle(R.string.title);
dialog2.setIcon(R.drawable.ic_launcher);
dialog2.setMessage("亲,再看看吧");
//第一个参数表示按钮中的显示的文本 第二个参数 表示当点击按钮时触发的事件
dialog2.setPositiveButton("确定", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {//表示按钮被点击
Toast.makeText(MainActivity.this,""+which, Toast.LENGTH_SHORT).show();
}
});
dialog2.setNegativeButton("取消", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
dialog2.setNeutralButton("稍后提醒",new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
dialog2.create();
dialog2.show();
break;
case R.id.button3://展示dailog中的显示内容为列表 注意:如果dialog的message部分显示的是items时不要添加setMessage()
AlertDialog.Builder dialog3=new AlertDialog.Builder(MainActivity.this);
dialog3.setTitle(R.string.title_color);
dialog3.setIcon(R.drawable.ic_launcher);
//第一个参数表示数组的资源id 或者是string数组对象 第二个参数表示当前点击某一项触发的事件
final String[] colors=getResources().getStringArray(R.array.colors);
dialog3.setItems(colors, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {//int which 当前被点击item的下标
//Toast.makeText(MainActivity.this,""+which, Toast.LENGTH_SHORT).show();
if("red".equals(colors[which])){
tv.setTextColor(Color.RED);
}else if("blue".equals(colors[which])){
tv.setTextColor(Color.BLUE);
}
}
});
dialog3.create();
dialog3.show();
break;
case R.id.button4:
AlertDialog.Builder dialog4=new AlertDialog.Builder(MainActivity.this);
dialog4.setTitle("标题");
dialog4.setIcon(R.drawable.ic_launcher);
int[] images={R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher};
list=new ArrayList<Map<String,Object>>();
for(int i=0;i<5;i++){
Map<String, Object> map=new HashMap<String, Object>();
map.put("images", images[i]);
map.put("text", "item"+i);
list.add(map);
}
SimpleAdapter adapter=new SimpleAdapter(MainActivity.this, list,R.layout.activity_item,
new String[]{"images","text"},
new int[]{R.id.imageView1,R.id.textView1});
//将适配器中的数据展示到dialog的内容位置
dialog4.setAdapter(adapter, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String str=(String) list.get(which).get("text");//根据点击的item的下标获取当前点击item的文本数据
Toast.makeText(MainActivity.this,str, Toast.LENGTH_SHORT).show();
}
});
dialog4.create().show();
break;
case R.id.button5://弹出dialog的内容为单选列表
AlertDialog.Builder dialog5=new AlertDialog.Builder(MainActivity.this);
dialog5.setTitle(R.string.title_color).setIcon(R.drawable.ic_launcher);
//第一个参数表示当前显示的列表资源 string数组 数组的资源id 适配器 cursor
//表示items中默认选中item的下标 如果没有默认被选中则时-1
final String[] cs=getResources().getStringArray(R.array.colors);
dialog5.setSingleChoiceItems(R.array.colors, 0, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
color=cs[which];
}
});
dialog5.setPositiveButton("yes", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//获取选择的item的内容进行操作
}
});
dialog5.create().show();
break;
case R.id.button6:
AlertDialog.Builder dialog6=new AlertDialog.Builder(MainActivity.this);
dialog6.setTitle(R.string.title_color).setIcon(R.drawable.ic_launcher);
//第二个参数 表示当前默认被选中的条目 如果为null表示默认没有选中 如果有选中需要创 件boolean类型的数组 数组的长度必须和数据的长度一致
dialog6.setMultiChoiceItems(R.array.colors, new boolean[]{true,true,false}, new OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
}
});
dialog6.setPositiveButton("yes", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//获取选择的item的内容进行操作
}
});
dialog6.create().show();
break;
case R.id.button7://弹出自定义布局的dialog
AlertDialog.Builder dialog7=new AlertDialog.Builder(MainActivity.this);
dialog7.setTitle("登录").setIcon(R.drawable.ic_launcher);
LayoutInflater layoutInflater=LayoutInflater.from(MainActivity.this);
View view1=layoutInflater.inflate(R.layout.dialog_signin, null);
editText_name=(EditText) view1.findViewById(R.id.username);
editText_pwd=(EditText) view1.findViewById(R.id.password);
dialog7.setView(view1);//设置自定义布局
dialog7.setPositiveButton("确定", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String name=editText_name.getText().toString().trim();
String pwd=editText_pwd.getText().toString().trim();
Toast.makeText(MainActivity.this, name+"----"+pwd, Toast.LENGTH_SHORT).show();
}
});
dialog7.setNegativeButton("取消", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
dialog7.create().show();
break;
case R.id.button8://弹出日期选择对话框
/*第一个参数 上下文对象
* 第二个参数 当设置日期时回调的监听方法
* 第三个参数 默认的年份
* 第四个参数 默认的月份
* 第五个参数 默认的日期
*/
DatePickerDialog datePickerDialog=new DatePickerDialog(MainActivity.this, new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
Toast.makeText(MainActivity.this, year+"年"+(monthOfYear+1)+"月"+dayOfMonth+"日",Toast.LENGTH_SHORT).show();
}
}, 2014, 4, 25);
datePickerDialog.show();
break;
case R.id.button9:
/*第一个参数 上下文对象
* 第二个参数 设置完成时间之后的回调方法
* 第三个参数 设置默认的小时数
* 第四个参数 设置默认的分钟数
* 第五个参数 表示是否以24小时计时法计时 如果true表示24h 如果false表示12h
*/
TimePickerDialog dialog9=new TimePickerDialog(MainActivity.this, new OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
Toast.makeText(MainActivity.this, hourOfDay+"时"+minute+"分钟", Toast.LENGTH_SHORT).show();
}
}, 18, 20, false);
dialog9.show();
break;
}
}
}