`
1140566087
  • 浏览: 559092 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
博客专栏
2c4ae07c-10c2-3bb0-a106-d91fe0a10f37
c/c++ 入门笔记
浏览量:18523
3161ba8d-c410-3ef9-871c-3e48524c5263
Android 学习笔记
浏览量:314084
Group-logo
J2ME 基础学习课程集
浏览量:18736
A98a97d4-eb03-3faf-af96-c7c28f709feb
Spring 学习过程记录...
浏览量:17581
社区版块
存档分类
最新评论

Android 之 对话框总结

阅读更多
各种对话测试布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
	android:orientation="vertical" >

    <Button
        android:id="@+id/user_dialog"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="自定义对话框测试" />
    <Button
        android:id="@+id/general_list_dialog"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="普通列表对话框测试" />
    <Button
        android:id="@+id/multic_list_dialog"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="多选列表对话框测试" />
    <Button
        android:id="@+id/radio_list_dialog"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="单选列表对话框测试" />
     <Button
        android:id="@+id/adapter_list_dialog"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="提供列表项的列表对话框测试" />
    
  
</LinearLayout>


主程序代码测试:

/*
 * 对话框测试主入口
 * @author Administrator
 *
 */

public class DialogMainActivity extends Activity {

	private RadioGroup color,size;
	private RadioButton c1,c2,c3,c4,c5,s1,s2,s3,s4,s5;
	private TextView textView;
	private Button general,multic,radio,adapter,user;
	
	// 初始化
	public void init(){
		
		user = (Button) findViewById(R.id.user_dialog);
		general = (Button) findViewById(R.id.general_list_dialog);
		multic = (Button) findViewById(R.id.multic_list_dialog);
		radio = (Button) findViewById(R.id.radio_list_dialog);
		adapter = (Button) findViewById(R.id.adapter_list_dialog);
	}

	// 程序入口
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.dialog_main_layout);
		init(); // 初始化
		
		user.setOnClickListener(listener);
		general.setOnClickListener(listener);
		multic.setOnClickListener(listener);
		radio.setOnClickListener(listener);
		adapter.setOnClickListener(listener);
	}
	
	/**
	 * 普通列表对话框测试
	 */
	public void generalListDialog(){
		Builder b = new Builder(this);
		b.setTitle("普通列表对话框测试");
		b.setIcon(R.drawable.ic_launcher);
		
		b.setItems(new String[]{"西方","南方","北方","西北方"},new OnClickListener() {
			
			public void onClick(DialogInterface dialog, int which) { // which 代表被点击的项
				
				Toast.makeText(DialogMainActivity.this, "选中了:"+new String[]{"西方","南方","北方","西北方"}[which],Toast.LENGTH_LONG).show();
			}
		});
		
		b.create();
		b.show();
	}
	
	/**
	 * 单选对话框测试
	 */
	public void radioListDialog(){
		Builder b = new AlertDialog.Builder(this);
		b.setTitle("单选列表对话框测试");
		b.setIcon(R.drawable.ic_launcher);
		final String[] data = new String[]{"男","女","中"};
		/*
		 * 参数: 数据  默认选项  事件
		 */
		b.setSingleChoiceItems(data, 0, new OnClickListener() {
			
			public void onClick(DialogInterface dialog, int which) {
				
				Toast.makeText(DialogMainActivity.this, "选中了:"+data[which],Toast.LENGTH_LONG).show();
			}
		});
		
		// 确定
		b.setPositiveButton("确定", new OnClickListener() {
			public void onClick(DialogInterface dialog, int which) {
				
			}
		});
		
		// 取消
		b.setNegativeButton("取消",new OnClickListener() {
			
			public void onClick(DialogInterface dialog, int which) {
		
			}
		});
		
		b.create();
		b.show();
	}
	
	/**
	 * 创建多选列表对话框
	 */
	public void multicListDialog(){
		Builder b = new AlertDialog.Builder(this);
		b.setTitle("多选列表对话框测试");
		b.setIcon(R.drawable.ic_launcher);
		final String[] data = new String[]{"吃饭","冲浪","散步"};
		/*
		 * 参数: 数据  默认选项  事件
		 */
		b.setMultiChoiceItems(data, null, new OnMultiChoiceClickListener() {
		
			public void onClick(DialogInterface dialog, int which, boolean isChecked) {
				
				/* which 索引  - isChecked 是否被选中 */
				if(isChecked){
					Toast.makeText(DialogMainActivity.this, "选中了:"+data[which],Toast.LENGTH_LONG).show();
				}
			}
		});
		
		// 确定
		b.setPositiveButton("确定", new OnClickListener() {
			public void onClick(DialogInterface dialog, int which) {
				
			}
		});
		
		// 取消
		b.setNegativeButton("取消",new OnClickListener() {
			
			public void onClick(DialogInterface dialog, int which) {
		
			}
		});
		
		b.create();
		b.show();
	}

	/**
	 * 提供列表项的对话框测试
	 */
	public void adapterListDialog(){
		Builder b = new AlertDialog.Builder(this);
		b.setTitle("提供列表对话框测试");	// 标题
		b.setIcon(R.drawable.ic_launcher); // 图标
	
		/*
		 * 参数: 数据  默认选项  事件
		 */
	
		
		// 确定
		b.setPositiveButton("确定", new OnClickListener() {
			public void onClick(DialogInterface dialog, int which) {
				
			}
		});
		
		// 取消
		b.setNegativeButton("取消",new OnClickListener() {
			
			public void onClick(DialogInterface dialog, int which) {
		
			}
		});
		
		b.create();
		b.show();
	}
	
	// 事件 -- 测试各种动作
	private android.view.View.OnClickListener listener = new View.OnClickListener() {
		
		public void onClick(View v) {
			if(v.getId() == R.id.general_list_dialog){ // 普通测试
				generalListDialog();
				return;
			}
			if(v.getId() == R.id.user_dialog){ // 自定义测试
				userDialog();
				return;
			}
			if(v.getId() == R.id.radio_list_dialog){ // 单选测试
				radioListDialog();
				return;
			}
			if(v.getId() == R.id.multic_list_dialog){ // 多选测试
				multicListDialog();
				return;
			}
			if(v.getId() == R.id.adapter_list_dialog){ // 多选测试
				adapterListDialog();
				return;
			}
			
		}
	};
	
	
	/**
	 * 自定义对话框测试
	 */
	public void userDialog(){

		// 创建对话框对象
		Builder builder = new Builder(this);
		builder.setTitle("字体样式选择"); // 设置标题
		builder.setIcon(R.drawable.ic_launcher); // 设置图标

		// 确定按钮  -- 执行预期动作
		builder.setPositiveButton("确定",new OnClickListener() {

			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub

			}
		});

		/*  载入自定义布局文件 -- 达成自定义的效果  */
		LayoutInflater inflater = LayoutInflater.from(this); // 获取视图容器对象

		// 根据视图容器获取布局对象
		LinearLayout layout = (LinearLayout) inflater.inflate(R.layout.user_dialog_item,null); 

		builder.setView(layout); // 将布局视图显示在对话框中

		// 获取自定义布局中的组件对象
		color = (RadioGroup) layout.findViewById(R.id.colorRadioGroup);
		size = (RadioGroup) layout.findViewById(R.id.sizeRadioGroup);
		c1 = (RadioButton) layout.findViewById(R.id.c1);
		c2 = (RadioButton) layout.findViewById(R.id.c2);
		c3 = (RadioButton) layout.findViewById(R.id.c3);
		c4 = (RadioButton) layout.findViewById(R.id.c4);
		s1 = (RadioButton) layout.findViewById(R.id.s1);
		s2 = (RadioButton) layout.findViewById(R.id.s2);
		s3 = (RadioButton) layout.findViewById(R.id.s3);
		s4 = (RadioButton) layout.findViewById(R.id.s4);
		
		// 设置监听器
		color.setOnCheckedChangeListener(radioListener);
		size.setOnCheckedChangeListener(radioListener);
		
		/* ------------------------------------------------------------------ */

		// 取消按钮,点击取消对话框
		builder.setNegativeButton("取消",new OnClickListener() {

			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub

			}
		});

		builder.create(); //  创建

		builder.show(); // 显示

	}

	// RadioGroup 事件改变监听器
	private OnCheckedChangeListener radioListener = new OnCheckedChangeListener() {

		public void onCheckedChanged(RadioGroup group, int checkedId) {
			
			if(checkedId == c1.getId()){ // 
				Toast.makeText(DialogMainActivity.this,"字体颜色", 1000).show();
				
			}
			if(checkedId == s1.getId()){
				Toast.makeText(DialogMainActivity.this,"字体大小", 1000).show();
				
			}
		}
	};

}



=============================自定义对话框======================================


自定义对话框布局文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/user_layout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:orientation="vertical"
    android:padding="15dp" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="请看这里" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="颜色选择:" />

        <RadioGroup
            android:id="@+id/colorRadioGroup"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <RadioButton
                android:id="@+id/c1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                />

            <RadioButton
                android:id="@+id/c2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                />

            <RadioButton
                android:id="@+id/c3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                />

            <RadioButton
                android:id="@+id/c4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                />
        </RadioGroup>
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="颜色选择:" />

        <RadioGroup
            android:id="@+id/sizeRadioGroup"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <RadioButton
                android:id="@+id/s1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                />

            <RadioButton
                android:id="@+id/s2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                />

            <RadioButton
                android:id="@+id/s3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                />

            <RadioButton
                android:id="@+id/s4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                />
        </RadioGroup>
    </LinearLayout>

</LinearLayout>



主程序入口:
分享到:
评论

相关推荐

    Android之对话框Dialog(博客源码)

    在给定的“Android之对话框Dialog(博客源码)”资源中,我们可以学习到如何在Android应用中实现三种不同类型的对话框:时间弹框、自定义弹框以及等待弹框。 首先,我们来详细了解一下时间弹框。时间弹框通常用于让...

    android 具有选择功能的对话框dialog

    总结,创建一个具有选择功能的对话框在Android开发中是一项常见的任务。通过使用AlertDialog及其Builder,开发者可以轻松地构建出符合用户需求的交互式对话框,提高应用的用户体验。在实际开发中,应根据具体场景...

    Delphi XE5 Android Dialogs 对话框

    本篇文章将深入探讨如何在Delphi XE5环境下创建和使用Android对话框。 首先,我们需要了解Delphi XE5的FireMonkey(FMX)框架。它是Delphi和C++Builder用于跨平台开发的统一界面层,支持Windows、Mac OS X、iOS以及...

    Android 实现对话框圆角 模糊图片功能

    总结起来,创建具有圆角和毛玻璃效果的对话框是Android开发中的常见需求,可以通过自定义布局、使用`RenderScript`进行模糊处理以及调整`DialogFragment`的设置来实现。同时,`PopupWindow`提供了更丰富的自定义选项...

    Android自定义对话框(代码)

    一、Android对话框基础 在Android中,对话框通常用于向用户显示临时信息或进行简单的交互。系统提供了几种内置的对话框类型,如AlertDialog、ProgressDialog和DatePickerDialog等。然而,这些预设的对话框样式可能...

    Android学习笔记(八)——显示进度对话框

    总结起来,Android中的进度对话框是提升用户体验的重要工具,正确使用它可以有效地告知用户应用的状态,避免用户感到不耐烦。无论是简单的不定量对话框还是显示具体进度的条形对话框,都需要根据实际任务特性来选择...

    Android自定义加载对话框

    总结,自定义加载对话框是Android开发中的重要技能,它允许开发者创造出与应用整体风格一致的加载提示。通过自定义布局、扩展Dialog类以及正确管理显示和关闭逻辑,我们可以轻松实现这一功能。同时,结合通用布局,...

    android 对话框样式

    ### Android对话框样式详解 在Android开发过程中,对话框(Dialog)是常用的一种UI组件,用于向用户展示信息、请求用户输入或确认等操作。合理地定制对话框样式不仅可以提升应用的整体美观度,还能增强用户体验。...

    Android 普通对话框源码.rar

    下面将详细解释Android对话框的基本概念、创建方式以及自定义方法。 1. **对话框类型** - **AlertDialog**: 常见的对话框类型,包含标题、内容和按钮。可以通过`AlertDialog.Builder`来构建。 - **ProgressDialog...

    Android程序研发源码Android 普通对话框源码.zip

    下面将详细探讨Android对话框的基本概念、类型及其使用方法。 一、对话框基本概念 对话框在Android中是基于Activity的一个子窗口,它浮现在当前界面之上,用于提供一种与用户交互的方式。对话框通常用于显示警告...

    android 自定义对话框.zip源码资源下载

    总结,Android自定义对话框涉及到的知识点包括Android UI设计、样式和主题的使用、事件处理、类的继承与重写以及可能的第三方库集成。通过这个源码资源,开发者可以学习到如何构建一个功能完整、样式独特的对话框,...

    Android对话框源码,十几种动画的对话框

    总结来说,Android对话框是应用中不可或缺的组件,通过源码学习和第三方库的利用,开发者可以创造出功能丰富且具有视觉冲击力的对话框,提高用户与应用的互动体验。理解并熟练掌握对话框的使用,将有助于提升Android...

    Android 各种对话框整理

    总结,Android的对话框机制为开发者提供了丰富的选择,可以根据应用场景灵活选用Alert Dialog、Progress Dialog、DatePicker/TimePicker Dialog或者自定义Dialog,以实现更符合用户需求的交互体验。在实际项目中,要...

    Android-Dialog对话框

    在Android开发中,Dialog对话框是一种常见的用户交互组件,它用于在主界面之上显示一个临时窗口,用于提示信息、确认操作或提供选择项。本文将深入探讨`Android-Dialog`对话框的相关知识点,并结合源码分析,以帮助...

    android对话框总结

    本文将全面总结Android对话框的使用及其关键知识点。 首先,Activity类提供了一套完整的对话框管理机制,包括`onCreateDialog(int)`、`onPrepareDialog(int, Dialog)`、`showDialog(int)`和`dismissDialog(int)`等...

    Android 对话框中的进度条 ProgressDialog

    总结一下,Android的ProgressDialog是一个在后台任务执行时向用户展示进度的组件。虽然在新版本的Android中被弃用,但它仍然是学习Android UI和异步处理的重要知识点。理解ProgressDialog的工作原理和替代方案,可以...

    Android 对话框大全

    ### Android对话框(Dialog)详解 #### 一、引言 在Android开发中,对话框是一种常见的用户交互组件,用于向用户提供临时的信息展示或收集用户的输入。本文将深入探讨Android中的对话框机制,并通过具体的代码示例...

    Android自定义对话框

    简单的总结:自定义对话框有如下步骤。 1.自定义对话框样式(R.style.xxx) 2.自定义对话框布局(R.layout.xxx) 3.通过Dialog构建对话框(Dialog.setContentView(R.layout.xxx)) 4.处理事件和业务逻辑(按钮,列表,...

    仿腾讯的android下载对话框动画

    总结来说,仿腾讯的Android下载对话框动画涉及了Android自定义View的创建、图形绘制、动画实现以及与后台任务的交互等多个关键知识点。理解并实践这些技术,不仅能够提升开发者的设计能力,还能加深对Android系统...

Global site tag (gtag.js) - Google Analytics