Android 对话框 Dialog

fragment pageview HorizontalScrollView
http://blog.csdn.net/lmj623565791/article/details/37970961
http://blog.csdn.net/huangyabin001/article/details/30053835

Dialog在Activity的显示和创建可以用Activity内的方法: 

showDialog(int id); 

 protected Dialog onCreateDialog(int id)

2. 自定义的Dialog

layout_mydialog.xml 布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <ImageView
        android:src="@drawable/ic_launcher"
        android:layout_width="match_parent"
        android:layout_height="64dp"
        android:scaleType="center"
        android:background="#FFFFBB33"
        android:contentDescription="@string/app_name" />
    <EditText
        android:id="@+id/username"
        android:inputType="textEmailAddress"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:layout_marginLeft="4dp"
        android:layout_marginRight="4dp"
        android:layout_marginBottom="4dp"
        android:hint="username" />
    <EditText
        android:id="@+id/password"
        android:inputType="textPassword"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="4dp"
        android:layout_marginLeft="4dp"
        android:layout_marginRight="4dp"
        android:layout_marginBottom="16dp"
        android:fontFamily="sans-serif"
        android:hint="password"/>
</LinearLayout>
DialogTestActivity.java
package com.example.uitest;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.DialogInterface.OnMultiChoiceClickListener;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class DialogTestActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.layout_dialog);
	}
	
	public void click1(View view){
		Toast.makeText(this, "click1", 1000).show();
		final String[] items = new String[]{"苹果","葡萄","香蕉"};
		final boolean[] status = new boolean[]{true, false, true};
		AlertDialog.Builder builder = new Builder(this);
		builder.setTitle("标题")
			.setIcon(R.drawable.ic_launcher)
			.setMultiChoiceItems(items, status, new OnMultiChoiceClickListener() {
				@Override
				public void onClick(DialogInterface dialog, int which, boolean isChecked) {
					Toast.makeText(DialogTestActivity.this, ""+items[which] + isChecked, 1000).show();
					status[which] = isChecked;
				}
			})	
			.setNegativeButton("取消", new OnClickListener() {
				@Override
				public void onClick(DialogInterface dialog, int which) {
				}
			})
			.setPositiveButton("确定", new OnClickListener() {
				@Override
				public void onClick(DialogInterface dialog, int which) {
					Toast.makeText(DialogTestActivity.this, " click 确定", 1000).show();
				}
			});
		builder.show();
	}
	
	//自定义Dialog
	public void click2(View view){
		AlertDialog.Builder builder = new Builder(this);
		//获得自定义的view
		View viewDialog = View.inflate(this, R.layout.layout_mydialog, null);
		final EditText usernameEt = (EditText) viewDialog.findViewById(R.id.username);
		final EditText passwdEt = (EditText) viewDialog.findViewById(R.id.password);
		builder.setView(viewDialog)
			.setTitle("myself Dialog") //设置自定义的view
			.setNegativeButton("取消", new OnClickListener() {
				@Override
				public void onClick(DialogInterface dialog, int which) {
				}
			})
			.setPositiveButton("确定", new OnClickListener() {
				@Override
				public void onClick(DialogInterface dialog, int which) {
					String username = usernameEt.getText().toString();
					String passwd = passwdEt.getText().toString();
					Toast.makeText(DialogTestActivity.this, username + " : " + passwd, 1000).show();
				}
			});
		builder.show();
	}
}

1. 对话框示例代码

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. public class MainActivity extends Activity {  
  2.   
  3.     @Override  
  4.     protected void onCreate(Bundle savedInstanceState) {  
  5.         super.onCreate(savedInstanceState);  
  6.         setContentView(R.layout.activity_main);  
  7.     }  
  8.   
  9.     /** 
  10.      * 确定取消对话框 
  11.      *  
  12.      * @param view 
  13.      */  
  14.     public void click1(View view) {  
  15.         // 1.创建一个对话框的构造器.  
  16.         AlertDialog.Builder builder = new Builder(this);  
  17.         builder.setTitle("java培训标题");  
  18.         builder.setIcon(R.drawable.ic_launcher);  
  19.         builder.setMessage("想打开官方网站么?");  
  20.         builder.setPositiveButton("确定"new OnClickListener() {  
  21.   
  22.             @Override  
  23.             public void onClick(DialogInterface dialog, int which) {  
  24.                 Intent intent = new Intent();  
  25.                 intent.setAction(Intent.ACTION_VIEW);  
  26.                 intent.setData(Uri.parse("http://edu.csdn.net"));  
  27.                 startActivity(intent);  
  28.             }  
  29.         });  
  30.         builder.setNegativeButton("取消"new OnClickListener() {  
  31.   
  32.             @Override  
  33.             public void onClick(DialogInterface dialog, int which) {  
  34.                 // 默认实现, 点击后 关闭对话框  
  35.             }  
  36.         });  
  37.   
  38.         // builder.create().show();  
  39.         builder.show();  
  40.   
  41.     }  
  42.   
  43.     /** 
  44.      * 单选对话框 
  45.      *  
  46.      * @param view 
  47.      */  
  48.     public void click2(View view) {  
  49.         // 1.创建一个对话框的构造器.  
  50.         AlertDialog.Builder builder = new Builder(this);  
  51.         builder.setTitle("你想吃什么");  
  52.         final String[] items = new String[] { "苹果""葡萄""香蕉" };  
  53.         builder.setSingleChoiceItems(items, 1new OnClickListener() {  
  54.   
  55.             @Override  
  56.             public void onClick(DialogInterface dialog, int which) {  
  57.                 Toast.makeText(MainActivity.this"您选择了吃" + items[which], 0)  
  58.                         .show();  
  59.                 dialog.dismiss();  
  60.             }  
  61.         });  
  62.   
  63.         // builder.create().show();  
  64.         builder.show();  
  65.   
  66.     }  
  67.   
  68.     /** 
  69.      * 多选对话框 
  70.      *  
  71.      * @param view 
  72.      */  
  73.     public void click3(View view) {  
  74.         // 1.创建一个对话框的构造器.  
  75.         AlertDialog.Builder builder = new Builder(this);  
  76.         builder.setTitle("你想吃什么");  
  77.         final String[] items = new String[] { "苹果""葡萄""香蕉" };  
  78.         final boolean[] status = new boolean[] { truefalsetrue };  
  79.         builder.setMultiChoiceItems(items, status,  
  80.                 new OnMultiChoiceClickListener() {  
  81.   
  82.                     @Override  
  83.                     public void onClick(DialogInterface dialog, int which,  
  84.                             boolean isChecked) {  
  85.                         if (isChecked) {  
  86.                             Toast.makeText(MainActivity.this,  
  87.                                     items[which] + "被选中了"0).show();  
  88.   
  89.                         } else {  
  90.                             Toast.makeText(MainActivity.this,  
  91.                                     items[which] + "被取消选中了"0).show();  
  92.                         }  
  93.                         status[which] = isChecked;  
  94.                     }  
  95.                 });  
  96.   
  97.         builder.setPositiveButton("确定"new OnClickListener() {  
  98.   
  99.             @Override  
  100.             public void onClick(DialogInterface dialog, int which) {  
  101.                 // todo:遍历数组 查看状态  
  102.   
  103.             }  
  104.         });  
  105.   
  106.         // builder.create().show();  
  107.         builder.show();  
  108.   
  109.     }  
  110.   
  111.     /** 
  112.      * 进度条对话框 
  113.      *  
  114.      * @param view 
  115.      */  
  116.     public void click4(View view) {  
  117.         ProgressDialog pd = new ProgressDialog(this);  
  118.         pd.setTitle("请稍后");  
  119.         pd.setMessage("正在后台处理...");  
  120.         pd.show();  
  121.         new Thread(){  
  122.             public void run(){  
  123.                 Thread.sleep(2000);  
  124.                 pd.dismiss();  
  125.             }  
  126.         }.start();  
  127.           
  128.     }  
  129.     /** 
  130.      * 显示进度的进度条对话框 
  131.      *  
  132.      * @param view 
  133.      */  
  134.     public void click5(View view) {  
  135.         final ProgressDialog pd = new ProgressDialog(this);  
  136.         pd.setTitle("请稍后");  
  137.         pd.setMessage("正在后台处理...");  
  138.         pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);  
  139.         pd.setMax(100);  
  140.         new Thread(){  
  141.             public void run() {  
  142.                 for(int i = 0;i<100;i++){  
  143.                     pd.setProgress(i);  
  144.                     try {  
  145.                         Thread.sleep(30);  
  146.                     } catch (InterruptedException e) {  
  147.                         e.printStackTrace();  
  148.                     }  
  149.                 }  
  150.                 pd.dismiss();  
  151.             };  
  152.         }.start();  
  153.         pd.show();  
  154.     }  
  155. }  



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值