Android学习笔记--对话框

来源:互联网 发布:新加坡dfs免税店 mac 编辑:程序博客网 时间:2024/06/06 14:18

Android中有四种对话框,分别是:警告对话框、进度对话框、日期选择对话框和时间选择对话框

一。警告对话框(AlertDialog)

AlertDialog不止用来警告用户,他还可以提供一定的交互性能,简单的说,它只是一个提示窗口

创建需要如下步骤:

1.获得AlertDialog的静态内部类Builder对象,使用该类来创建对话框

2.通过Builder对象设置对话框的标题、按钮以及按钮响应事件

3.调用Builder的create()方法创建对话框

4.调用AlertDialog的show()方法显示对话框

例:对话框显示(是、否)

private TextView textView;private Button button;    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        textView = (TextView)findViewById(R.id.TextView01);        button = (Button)findViewById(R.id.Button01);        final AlertDialog.Builder builder = new AlertDialog.Builder(this);        button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubbuilder.setMessage("真的要删除?").setPositiveButton("是",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubtextView.setText("删除成功");}}).setNegativeButton("否", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubtextView.setText("取消删除");}});AlertDialog ad = builder.create();ad.show();}});    }

对话框显示(3个单项选择)
private TextView textView;private Button button;    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        textView = (TextView)findViewById(R.id.TextView01);        button = (Button)findViewById(R.id.Button01);        final AlertDialog.Builder builder = new AlertDialog.Builder(this);        final String[] items = {"No.1","No.2","No.3"};        button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {builder.setTitle("请选择").setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {textView.setText(items[which]);}}).create().show();}});    }

二。进度条对话框

在以后的进度条单项笔记中记


三。日期、时间选择对话框

创建步骤:

1.调用Activity的onCreateDialog()方法创建对话框

2.分别在OnDateSetListener的onDateSet()方法和OnTimeSetListener的onTimeSet()方法中更改日期和时间

3.调用showDialog()方法显示对话框

例:

private TextView textView01,textView02;private Button button01,button02;private Calendar calendar;private int m_year,m_month,m_day;private int m_hour,m_minute;    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        textView01 = (TextView)findViewById(R.id.TextView01);        textView02 = (TextView)findViewById(R.id.TextView02);        button01 = (Button)findViewById(R.id.Button01);        button02 = (Button)findViewById(R.id.Button02);        calendar = Calendar.getInstance();        m_year = calendar.get(Calendar.YEAR);        m_month = calendar.get(Calendar.MONTH);        m_day = calendar.get(Calendar.DAY_OF_MONTH);        m_hour = calendar.get(Calendar.HOUR);        m_minute = calendar.get(Calendar.MINUTE);        textView01.setText(m_year+"-"+(m_month+1)+"-"+m_day);        textView02.setText(m_hour+":"+m_minute);        button01.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {showDialog(0);}});        button02.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {showDialog(1);}});    }    @Override    protected Dialog onCreateDialog(int id) {    if (id==0)    return new DatePickerDialog(this, dateCallBack, m_year, m_month, m_day);    else     return new TimePickerDialog(this, timeCallBack, m_hour, m_minute, false);    }    private OnDateSetListener dateCallBack = new OnDateSetListener() {    @Overridepublic void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) {m_year = year;m_month = monthOfYear;m_day = dayOfMonth;textView01.setText(m_year+"-"+(m_month+1)+"-"+m_day);}};private OnTimeSetListener timeCallBack = new OnTimeSetListener() {@Overridepublic void onTimeSet(TimePicker view, int hourOfDay, int minute) {m_hour = hourOfDay;m_minute = minute;        textView02.setText(m_hour+":"+m_minute);}};


原创粉丝点击