当前位置: 代码迷 >> Android >> Android中的Dialog用法大全(一)
  详细解决方案

Android中的Dialog用法大全(一)

热度:45   发布时间:2016-05-01 14:13:59.0
Android中的Dialog用法大全(1)

?????? 在 Android 中个种对话框效果的应用。常用对话框的使用,弹出式对话框、日期选择对话框、时间选择对话框、进度条对话框。这篇资料会让我们更了解Dialog的用法,下面我们就来看看代码吧:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent"><TextView android:id="@+id/txtMsg" android:layout_width="wrap_content"android:layout_height="wrap_content"></TextView><Button android:id="@+id/btn1" android:layout_width="wrap_content"android:layout_height="wrap_content"></Button><Button android:id="@+id/btn2" android:layout_width="wrap_content"android:layout_height="wrap_content"></Button><Button android:id="@+id/btn3" android:layout_width="wrap_content"android:layout_height="wrap_content"></Button><Button android:id="@+id/btn4" android:layout_width="wrap_content"android:layout_height="wrap_content"></Button><Button android:id="@+id/btn5" android:layout_width="wrap_content"android:layout_height="wrap_content"></Button><Button android:id="@+id/btn6" android:layout_width="wrap_content"android:layout_height="wrap_content"></Button></LinearLayout>

?
这里我们一下定义了6个button,这些Button都是有用的,每一个Button都代表什么意思来让我们看看下面的代码:

package eoe.android.dialog;import java.util.Calendar;import android.app.Activity;import android.app.AlertDialog;import android.app.DatePickerDialog;import android.app.Dialog;import android.app.ProgressDialog;import android.app.TimePickerDialog;import android.app.DatePickerDialog.OnDateSetListener;import android.app.TimePickerDialog.OnTimeSetListener;import android.content.DialogInterface;import android.content.DialogInterface.OnClickListener;import android.os.Bundle;import android.view.View;import android.widget.DatePicker;import android.widget.TextView;import android.widget.TimePicker;import android.widget.Button;public class Main extends Activity {/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);// 弹出式对话框的 Demo。先调用 Builder(),在 Create(), 需要显示对话框的是后再调用 show()AlertDialog dialog = new AlertDialog.Builder(this).setTitle("弹出对话框").create();dialog.show();// 以下是各种对话框的 DemoMyButtonClickListener listener = new MyButtonClickListener();Button btn1 = (Button) this.findViewById(R.id.btn1);btn1.setText("简单的对话框的 Demo");btn1.setOnClickListener(listener);Button btn2 = (Button) this.findViewById(R.id.btn2);btn2.setText("包括常用设置的对话框(数据来自 xml)");btn2.setOnClickListener(listener);Button btn3 = (Button) this.findViewById(R.id.btn3);btn3.setText("弹出的对话框的内容是一个 View");btn3.setOnClickListener(listener);Button btn4 = (Button) this.findViewById(R.id.btn4);btn4.setText("日期选择对话框");btn4.setOnClickListener(listener);Button btn5 = (Button) this.findViewById(R.id.btn5);btn5.setText("时间选择对话框");btn5.setOnClickListener(listener);Button btn6 = (Button) this.findViewById(R.id.btn6);btn6.setText("进度条对话框");btn6.setOnClickListener(listener);}class MyButtonClickListener implements View.OnClickListener {@Overridepublic void onClick(View v) {// 具体的对话框的实现可以通过重写 onCreateDialog 完成switch (v.getId()) {case R.id.btn1:Main.this.showDialog(0);break;case R.id.btn2:Main.this.showDialog(1);break;case R.id.btn3:Main.this.showDialog(2);break;case R.id.btn4:Main.this.showDialog(3);break;case R.id.btn5:Main.this.showDialog(4);break;case R.id.btn6:Main.this.showDialog(5);break;}}}@Overridepublic Dialog onCreateDialog(int id) {switch (id) {case 0:// 一个简单的弹出对话框return new AlertDialog.Builder(this).setTitle("这是一个简单的弹出对话框的 Demo").create();case 1:// 一个相对复杂的弹出对话框return new AlertDialog.Builder(this).setTitle("标题") // 设置标题// .setCustomTitle(View) // 以一个 View 作为标题 .setIcon(R.drawable.icon01) // 设置标题图片// .setMessage("信息") // 需要显示的弹出内容.setPositiveButton("确定", new OnClickListener() { // 设置弹框的确认按钮所显示的文本,以及单击按钮后的响应行为@Overridepublic void onClick(DialogInterface a0, int a1) {TextView txtMsg = (TextView) Main.this.findViewById(R.id.txtMsg);txtMsg.append("单击了对话框上的“确认”按钮\n");}}).setItems(R.array.ary, new DialogInterface.OnClickListener() { // 弹框所显示的内容来自一个数组。数组中的数据会一行一行地依次排列public void onClick(DialogInterface dialog, int which) {}})// 其他常用方法如下// .setMultiChoiceItems(arg0, arg1, arg2)// .setSingleChoiceItems(arg0, arg1, arg2)// .setNeutralButton(arg0, arg1)// .setNegativeButton(arg0, arg1).create();case 2:// 弹出对话框为指定的 View 的 Demoreturn new AlertDialog.Builder(this).setTitle("此对话框的内容是一个 View").setView(this.findViewById(R.layout.view)).create();case 3:// 弹出日期选择对话框Calendar c = Calendar.getInstance();return new DatePickerDialog(this, new OnDateSetListener() {@Overridepublic void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {TextView txtMsg = (TextView) Main.this.findViewById(R.id.txtMsg);txtMsg.append("新设置的日期为:" + String.valueOf(year) + "-"+ String.valueOf(monthOfYear) + "-"+ String.valueOf(dayOfMonth) + "\n");}}, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DATE));case 4:// 弹出时间选择对话框Calendar c2 = Calendar.getInstance();return new TimePickerDialog(this, new OnTimeSetListener() {@Overridepublic void onTimeSet(TimePicker view, int hourOfDay, int minute) {TextView txtMsg = (TextView) Main.this.findViewById(R.id.txtMsg);txtMsg.append("新设置的时间为:" + String.valueOf(hourOfDay) + ":"+ String.valueOf(minute) + "\n");}}, c2.get(Calendar.HOUR), c2.get(Calendar.MINUTE), true);case 5:// 弹出进度条对话框ProgressDialog progress = new ProgressDialog(this);progress.setMessage("loading...");return progress;default:return null;}}}

?

  相关解决方案