`

Andrid之对话框百变篇(12)

阅读更多
  • 日期选择器
  • 时间选择器

这两个对话框异曲同工,我们简单举例时间选择器:

new TimePickerDialog(MainActivity.this,
					 position, new OnTimeSetListener() {

						@Override
						public void onTimeSet(TimePicker arg0, int hour,
								int minute) {
							
							Toast toast = Toast.makeText(MainActivity.this, "时间:"+hour+minute, Toast.LENGTH_SHORT); 
							 toast.show(); 
						}
						
						
			}, c.get(Calendar.HOUR_OF_DAY), c.get(Calendar.MINUTE), true).show();

 

而日期选择器是:DatePickerDialog,这里不再做多余阐述。显示内容:



  • 定制版对话框

一直用的是默认的对话框,我们想不想自己built一个?那就自己定制一个

要用到布局文件定义显示组件,之后再将布局显示包含到对话框中,则需要用到LayoutInflater类的支持

定义main布局管理器一个按钮:


然后对话框所需要的布局管理器:login.xml


 

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/TableLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="用户名:" />

        <EditText
            android:id="@+id/editText1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10" >

            <requestFocus />
        </EditText>

    </TableRow>

    <TableRow
        android:id="@+id/tableRow2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="密码:" />

        <EditText
            android:id="@+id/editText2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:password="true"
            android:ems="10" />

    </TableRow>

</TableLayout>

 

然后是MainActivity

public class MainActivity extends Activity {

	private Button bt;
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		this.bt=(Button)super.findViewById(R.id.button1);
		bt.setOnClickListener(new  Click());
	}

	
	private class Click implements OnClickListener{

		@Override
		public void onClick(View v) {
			LayoutInflater factory=LayoutInflater.from(MainActivity.this);
			View myview=factory.inflate(R.layout.login, null);//将布局文件转换为View
			Dialog dialog=new AlertDialog.Builder(MainActivity.this).setIcon(R.drawable.smoke)
					.setTitle("用户登录").setView(myview).setPositiveButton("登录", null).setNegativeButton("取消", null)
					.create();
			dialog.show();
			
			
		}
		
		
	}
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

 

运行效果杠杠的:



 

 

  • 进度条对话框

进度条progressBar分为默认环形进度条和水平进度条

progressDialog

主要在Activity里:

public void onClick(View arg0) {
			final ProgressDialog pro=ProgressDialog.show(MainActivity.this, "搜索免费wifi中", "请耐心等待....");
			new Thread(){                     //线程对象
				public void run(){
					try{
						Thread.sleep(3000);//运行三秒钟后关闭对话框
					}catch(Exception e){
						
					}finally{
						pro.dismiss();//关闭对话框
					}
				}
			}.start();//线程启动
			pro.show();
			
		 }	

 运行效果如下:

之所以用final定义pro,主要是想让内部类可以访问到方法中定义的参数

 然后若是想改成水平进度处理条,则需要定义样式:

public void onClick(View arg0) {
			final ProgressDialog pro = new ProgressDialog(MainActivity.this) ;
			pro.setTitle("搜索免费wifi中...") ;
			pro.setMessage("请耐心等待") ;
			pro.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//
			pro.setMax(100);//设置最大进度值
			pro.setProgress(30);//开始点
			pro.setButton("后台处理", new DialogInterface.OnClickListener() {
				@Override
				public void onClick(DialogInterface dialog, int which) {
					pro.dismiss() ;	// 关闭对话框
				}
			}) ;
			pro.setButton2("详细信息", new DialogInterface.OnClickListener() {
				@Override
				public void onClick(DialogInterface dialog, int which) {
					
				}
			}) ;
			pro.onStart();
			new Thread(){
				public void run(){
					for(int i=0;i<100;i++){
						try{
							Thread.sleep(500);//休眠0.5秒
						}catch(InterruptedException e){
							e.printStackTrace();
						}
						pro.incrementProgressBy(1);
					}
					pro.dismiss();
				}
			}.start();
			pro.show();
		}

 刚才想就这默认的·直接做发现出错,还是要把设置标题信息分开与环形不一样,这点大家注意。

运行效果如下:



 



 
 
 

 

  • 大小: 84.6 KB
  • 大小: 79.1 KB
  • 大小: 31.3 KB
  • 大小: 53 KB
  • 大小: 22.1 KB
  • 大小: 35.7 KB
分享到:
评论

相关推荐

    android手机百变锁屏

    【Android手机百变锁屏】是一款专为Android用户设计的个性化锁屏应用,它允许用户根据个人喜好定制属于自己的手机锁屏界面。本教程通过完整的打包资料,详细讲解了如何从零开始,一步步构建这样的应用,是Android...

    百变遥控电脑版

    "百变遥控电脑版"是一款专为Windows操作系统设计的软件,其主要功能是与"百变遥控安卓版"配合使用,让Android智能手机能够充当遥控器来控制电脑进行各种操作。这款应用巧妙地将移动设备的便捷性与电脑的高性能结合在...

    百变遥控.zip

    《百变遥控——手机远程控制电脑的科技魅力》 在当今科技日新月异的时代,我们的生活和工作越来越依赖于各种智能设备。其中,“百变遥控.zip”这一压缩包文件,蕴含了手机通过网络或蓝牙控制电脑的技术,使得我们...

    百变遥控最新版

    首先,我们来看"百变遥控安卓版.apk",这是专为Android系统设计的手机应用。安装这个应用程序后,用户可以在自己的Android手机上下载并设置,使手机变成一个功能强大的遥控器。通过Wi-Fi或蓝牙连接,用户可以实现对...

    百变遥控免费版

    1. 多平台支持:"百变遥控"特别之处在于它内置了适用于Windows操作系统和Android手机的版本,确保了跨平台的兼容性。无论你使用的是Windows电脑还是Android手机,都能轻松实现两者之间的连接。 2. 桌面控制:通过...

    Android开发控件-VarietyImageView(百变ImageView,可以根据要求指定哪个角是圆角,哪个角是直角)

    在Android应用开发中,ImageView是用于显示图像的常见控件,但有时我们可能需要更复杂的图像展示效果,比如实现特定角落的圆角效果。VarietyImageView正是为了解决这一问题而设计的,它允许开发者根据需求指定图像的...

    百变遥控汉化版

    1. **跨平台操作**:"百变遥控"支持多种操作系统,包括Windows、Mac、iOS和Android等,实现不同设备间的无缝连接。 2. **直观界面**:汉化版本的界面设计符合中国用户的使用习惯,简洁明了,操作流程清晰易懂。 3. *...

    BRITAX宝得适百变骑士 Plus说明书.pdf

    1. **适用年龄与体重范围**:百变骑士 Plus设计用于适应孩子的成长,可能支持从新生儿到大约12岁的孩子,具体取决于孩子的体重和身高。说明书会明确指出各个阶段的适用范围。 2. **安装方式**:该安全座椅支持两种...

    百变机器人优秀篇.doc

    【百变机器人优秀篇】的文档内容主要涉及的是在幼儿教育中如何通过“百变机器人”的主题活动来培养孩子们的思维能力和问题解决能力。这个活动旨在让孩子们在游戏中学习和理解基本的几何图形,如圆形、方形和三角形,...

    百变遥控电脑客户端

    "百变遥控电脑客户端"正是这一技术浪潮中的产物,它提供了一种全新的远程操作个人电脑的方式,使得用户能够通过安卓智能手机实现对电脑的高效控制。本文将深入探讨这一客户端的设计理念、核心功能、安全性能、兼容性...

    BRITAX宝得适超级百变王白金版说明书.pdf

    该座椅特别之处在于它具备两种安全带系统,以适应孩子成长的不同阶段,从而提供最佳的保护。 1. **适用年龄和体重范围**: - 组别I:适合9到18公斤的儿童,建议使用五点式安全带直至孩子达到18公斤。 - 组别II+...

    百变主题自动化色彩设计系统 授权注册码

    给大家一个.百变主题自动化色彩设计系统 授权注册码

    百变鼠标.rar

    百变鼠标是一款创新的、个性化的鼠标应用,它允许用户根据个人喜好和需求自定义鼠标的外观和功能,从而提供更为舒适和个性化的使用体验。这个压缩包文件“百变鼠标.rar”包含了主要的可执行文件“百变鼠标.exe”,这...

    百变鼠标

    百变鼠标

    百变遥控(蓝牙版)

    它支持各种操作系统,如Android或iOS,只需简单的下载和安装流程,用户就能在手机上拥有一个直观且功能丰富的控制界面。通过蓝牙配对,手机与电脑之间的连接快速稳定,确保了指令的即时传递,无论是浏览网页、播放...

    百变空间源码.rar

    QQ空间是中国最受欢迎的社交平台之一,用户可以个性化地装饰自己的空间,展示个人风格。"百变空间源码.rar" 是一个包含资源和教程的压缩包,旨在帮助用户深入理解并优化他们的QQ空间设计,使其更加独特和吸引人。在...

    百变OA注册机

    百变OA注册机,百变OA协同办公系统 1. 产品简介 百变OA= OA+工作流+MIS系统+二次开发环境 百变OA是智岛软件依据多年开发企业管理软件的经验,推出的一款业务基础平台产品,它基于B/S架构,集OA系统、工作流系统、...

    百变按钮 ver3.0

    "百变按钮 ver3.0" 是一个专为个人建站设计的按钮样式库,它提供了丰富的按钮样式和交互效果,让网站设计更加灵活多变。这个版本可能是对之前版本的升级,增加了新的功能和优化了用户体验。在建站过程中,按钮作为...

    百变小强的程序.zip

    "百变小强的程序.zip"这个压缩包文件可能包含的是与"百变小强"相关的编程项目或教程,可能是为了帮助用户理解或操作与"百变小强"这一主题有关的软件或硬件设备。"百变小强"通常在IT行业中可能指的是一个具有多种功能...

    百变OA 源码

    【百变OA源码】是一款基于EXTJS框架的办公自动化系统,它提供了多样的界面风格,如OA_WIN7和OA_XP,以适应不同的用户需求和操作习惯。EXTJS是一种强大的JavaScript库,专用于构建富互联网应用程序(RIA),其丰富的...

Global site tag (gtag.js) - Google Analytics