Android中五种常见的Dialog演示

来源:互联网 发布:计算机病毒预防和软件 编辑:程序博客网 时间:2024/05/24 08:33

Dialog的演示:

     日期选择Dialog      时间选择Dialog      普通Dialog     自定义Dialog    列表Dialog

Java代码实现如下:

import android.app.Activity;import android.app.AlertDialog;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.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.widget.ArrayAdapter;import android.widget.DatePicker;import android.widget.EditText;import android.widget.TimePicker;import android.widget.Toast;import java.util.ArrayList;import java.util.Calendar;import java.util.Date;import java.util.List; //五种 常用的Dialog展示public class MainActivity extends Activity {   @Override   protected void onCreate(Bundle savedInstanceState) {      super.onCreate(savedInstanceState);      setContentView(R.layout.activity_main);   }    //按钮点击事件   public void btnClick(View v){      int id = v.getId();      switch (id) {      case R.id.datePicker:         //获取日历         Calendar calendar = Calendar.getInstance();          DatePickerDialog dialog =         new DatePickerDialog(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_LONG).show();            }         }, calendar.get(Calendar.YEAR),             calendar.get(Calendar.MONTH),             calendar.get(Calendar.DAY_OF_MONTH));         dialog.show();         break;      case R.id.timePicker :         //时间选择Dialog         /**          * 1.上下文对象          * 2.回调函数          * 3.4 默认事件 小时和分          * 5.是否是24小时  boolean类型          */         Date date = new Date();         int hour = date.getHours();         int min  = date.getMinutes();         TimePickerDialog timePickerDialog =         new TimePickerDialog(this, new OnTimeSetListener() {            @Override            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {               // TODO Auto-generated method stub               Toast.makeText(MainActivity.this,"您选择的时间:"+hourOfDay+":"+minute,                     Toast.LENGTH_LONG).show();            }         }, hour, min, true);         timePickerDialog.show();         break;      case R.id.alertDialog:         //普通Dialog          final AlertDialog.Builder builder = new AlertDialog.Builder(this);          builder.setIcon(R.drawable.ic_launcher); //title旁边的图片          builder.setTitle("提示");          builder.setMessage("是否确认退出?"); //中间部分,具体的提示内容         //最多有三个按钮 可写 可不写 2N 1P          builder.setPositiveButton("确定", new OnClickListener() {            @Override            public void onClick(DialogInterface dialog, int which) {               dialog.dismiss();            }         });          //中立按钮          builder.setNeutralButton("忽略", new OnClickListener() {                        @Override            public void onClick(DialogInterface dialog, int which) {               dialog.dismiss();            }         });          builder.setNegativeButton("取消", new OnClickListener() {                        @Override            public void onClick(DialogInterface dialog, int which) {               builder.show();            }         });          builder.show();         break;               case R.id.customDialog:         //自定义Dialog         AlertDialog.Builder custom = new AlertDialog.Builder(this);         custom.setIcon(R.drawable.img01);         custom.setTitle("请登陆账号和密码");         //布局填充器         View view = LayoutInflater.from(this).inflate(R.layout.custom_dialog, null);         custom.setView(view);         //显示你自定义的View         final EditText  et_name = (EditText) view.findViewById(R.id.et_name);         final EditText  et_pass = (EditText) view.findViewById(R.id.et_pass);         custom.setPositiveButton("登陆", new OnClickListener() {                        @Override            public void onClick(DialogInterface dialog, int which) {               // TODO Auto-generated method stub               //点击登陆的时候显示 输入的账号和密码               Toast.makeText(MainActivity.this, "账号:"+et_name.getText()                     +" 密码:"+et_pass.getText(), Toast.LENGTH_LONG).show();            }         });         custom.show();         break;      case R.id.listDialog:         //列表Dialog         AlertDialog.Builder listBuilder  = new  AlertDialog.Builder(this);         listBuilder.setIcon(R.drawable.img06); //设置显示图片         listBuilder.setTitle("设置title");         List<String> data = new ArrayList<String>();         for (int i = 0; i < 20; i++) {            data.add("i="+i);         }         ArrayAdapter<String> adapter =               new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,data);         //listView单条点击监听         listBuilder.setAdapter(adapter, new OnClickListener() {            @Override            public void onClick(DialogInterface dialog, int which) {               //which 点击了第几个               Toast.makeText(MainActivity.this, "您点击了第:"+which+"", Toast.LENGTH_LONG).show();            }         });         listBuilder.show();         break;      }   }} 
Xml布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context="com.example.android_day11_dialog.MainActivity" >    <TextView        android:id="@+id/tv_name"        android:layout_marginTop="30dp"        android:layout_centerHorizontal="true"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="Dialog的演示!"        android:textSize="30sp"        android:textColor="#f00"/>    <Button        android:id="@+id/datePicker"        android:layout_margin="10dp"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerHorizontal="true"        android:onClick="btnClick"        android:text="日期选择Dialog"        android:layout_below="@id/tv_name"       />    <Button        android:id="@+id/timePicker"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerHorizontal="true"        android:onClick="btnClick"        android:text="时间选择Dialog"        android:layout_below="@id/datePicker"/>    <Button        android:id="@+id/alertDialog"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_margin="10dp"        android:layout_centerHorizontal="true"        android:onClick="btnClick"        android:text="普通AlertDialog"        android:layout_below="@id/timePicker"/>    <Button        android:id="@+id/customDialog"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerHorizontal="true"        android:onClick="btnClick"        android:text="自定义Dialog"        android:layout_below="@id/alertDialog"/>    <Button        android:id="@+id/listDialog"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_margin="10dp"        android:layout_centerHorizontal="true"        android:onClick="btnClick"        android:text="列表Dialog"        android:layout_below="@id/customDialog"/></RelativeLayout>

1 0
原创粉丝点击