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>