选作了几种常用对话框

普通对话框 日期选择对画框 进度条对话框 和 定制iew的对话框

通过四个按钮来触发事件:

package com.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.content.DialogInterface; //import android.content.DialogInterface.OnClickListener; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.DatePicker; import android.widget.LinearLayout; public class DialogActivity extends Activity { /** Called when the activity is first created. */ final int DIALOG_WELCOME = 1; final int DIALOG_DATEPICKER = 2; final int DIALOG_PROGRESS = 3; final int DIALOG_LOGIN = 4; final int MAXPROGRESS = 200; final int MSG_PROGRESS = 1; Calendar c; ProgressDialog pd; Handler pHandler; Button welcome; Button date; Button progress; Button login; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); c = Calendar.getInstance();//时间设置对话框 pHandler = new Handler()//进度框 处理发来的消息Handler { @Override public void handleMessage(Message msg) { super.handleMessage(msg); //判断消息 switch(msg.what) { case MSG_PROGRESS: if(pd.getProgress() >= MAXPROGRESS) {//满了进度条就消失 pd.dismiss(); } else {//否则就进一格 pd.incrementProgressBy(1); pHandler.sendEmptyMessageDelayed(MSG_PROGRESS, 100); } break; default: break; } } }; welcome = (Button) findViewById(R.id.welcomeDialog); welcome.setOnClickListener(new ClickListener()); date = (Button) findViewById(R.id.dateDialog); date.setOnClickListener(new ClickListener()); progress = (Button) findViewById(R.id.progressDialog); progress.setOnClickListener(new ClickListener()); login = (Button) findViewById(R.id.loginDialog); login.setOnClickListener(new ClickListener()); } @Override protected Dialog onCreateDialog(int id) { switch(id) { case DIALOG_WELCOME: return new AlertDialog.Builder(DialogActivity.this) .setIcon(R.drawable.icon) .setTitle("欢迎~!") .setMessage("欢迎使用本程序!") .setPositiveButton("确定", new DialogInterface.OnClickListener() { public void onClick(DialogInterface arg0, int arg1) { // TODO Auto-generated method stub /* User clicked OK so do some stuff */ } }).create(); case DIALOG_DATEPICKER: return new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() { public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) { // TODO Auto-generated method stub /* * 设置好日期后的回调方法 * 可以根据设置好的内容更新用户界面 * 或者更新系统时间 */ } }, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH)); case DIALOG_PROGRESS: pd = new ProgressDialog(this); pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //设置进度条格数 pd.setMax(MAXPROGRESS); pd.setProgress(0); return pd; case DIALOG_LOGIN: //LayoutInflater factory = LayoutInflater.from(DialogActivity.this); //final View ld = factory.inflate(R.layout.logindialog, null); //上面和下面两种获取ld的方法皆可 LinearLayout ld = (LinearLayout)getLayoutInflater().inflate(R.layout.logindialog, null); return new AlertDialog.Builder(DialogActivity.this) .setIcon(R.drawable.icon) .setTitle("User Login") .setView(ld) .setPositiveButton("确定", new DialogInterface.OnClickListener() { public void onClick(DialogInterface arg0, int arg1) { } }).setNegativeButton("取消", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { /* User clicked cancel so do some stuff */ } }).create(); default: return null; } } class ClickListener implements OnClickListener { public void onClick(View v) { if(v == welcome) { showDialog(DIALOG_WELCOME); } else if(v == date) { showDialog(DIALOG_DATEPICKER); } else if(v == progress) { showDialog(DIALOG_PROGRESS); pHandler.sendEmptyMessage(MSG_PROGRESS); } else if(v == login) { showDialog(DIALOG_LOGIN); } } } }

main.xml:

<?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:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <Button android:id="@+id/welcomeDialog" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/welcomeDialog" /> <Button android:id="@+id/dateDialog" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/dateDialog" /> <Button android:id="@+id/progressDialog" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/progressDialog" /> </LinearLayout>

logindialog.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/username_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft = "20px" android:layout_marginRight = "20px" android:gravity = "left" android:textAppearance="?android:attr/textAppearanceMedium" android:text="@string/username" /> <EditText android:id="@+id/username_edit" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="20px" android:layout_marginRight="20px" android:scrollHorizontally="true" android:autoText="false" android:capitalize="none" android:hint="请输入您的用户名!" android:gravity="fill_horizontal" android:textAppearance="?android:attr/textAppearanceMedium" /><!--fill_horizontal 可能的话横向填满容器 --> <EditText android:id="@+id/ceshi" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="20dip" android:layout_marginRight="20dip" android:scrollHorizontally="false" android:autoText="false" android:capitalize="none" android:numeric="integer" android:gravity="fill_horizontal" android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView android:id="@+id/password_view" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_marginLeft="20dip" android:layout_marginRight="20dip" android:text="@string/password" android:gravity="left" android:textAppearance="?android:attr/textAppearanceMedium" /> <EditText android:id="@+id/password_edit" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_marginLeft="20dip" android:layout_marginRight="20dip" android:scrollHorizontally="true" android:autoText="false" android:capitalize="none" android:gravity="fill_horizontal" android:password="true" android:textAppearance="?android:attr/textAppearanceMedium" /> </LinearLayout>

更多相关文章

  1. Adroid 之 Builder 对话框
  2. Android开发经验总结——对话框的使用
  3. Android判断定位功能是否可用
  4. Android之Broadcast, BroadcastReceiver(广播)
  5. Android(安卓)Dialog 应用
  6. Set Positive|Neutral|Negative Button disabled in AlertDialog
  7. android dialog ——ProgressDialog 进度条对话框详解
  8. Android跨线程消息机制
  9. (1)ActivityThread分析

随机推荐

  1. android绘图Paint.setXfermode()和Canvas
  2. 【Android(安卓)修炼手册】常用技术篇 --
  3. Android开发三 如何安装 Android(安卓)SD
  4. Android(安卓)流媒体系列(一)
  5. Android黑科技动态加载(一)之Java中的Cla
  6. Android系统架构
  7. Android消息机制
  8. android学习---通过android帮助学习TextV
  9. android dumpsys debug tools
  10. Android为什么引入HAL