Android常用Dialog总结
2010-05-27 12:12
351 查看
选作了几种常用对话框
普通对话框 日期选择对画框 进度条对话框 和 定制iew的对话框
通过四个按钮来触发事件:
main.xml:
logindialog.xml
普通对话框 日期选择对画框 进度条对话框 和 定制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>
相关文章推荐
- 第一篇:android常用dialog总结
- Android干货福利,常用工具总结
- Android常用知识总结---第一季
- Android Dialog的使用方法总结
- Android常用的两种数据库操作方式总结
- Android UI 中常用技巧总结
- Android 常用 adb 命令总结
- Android常用控件总结
- android 常用功能总结(1)
- Android的对话框常用的有两种:PopupWindow和Dialog。
- Android 常用适配器总结
- Android按钮单击事件的四种常用写法总结
- Android常用Dialog对话框大全
- Android界面之常用的圆角提示框Dialog
- Android 常用 adb 命令总结
- ubuntu下android开打常用命令总结
- Android 框架:快速开发中Util常用工具类总结
- Android常用程序总结-----/*自己编写*/
- 移动测试基础 Android 常用 adb 命令总结
- 【总结】Dialog的使用(Android)