原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://weizhulin.blog.51cto.com/1556324/311450
大家好我们这一节讲的是LayoutInflater的使用,在实际开发种LayoutInflater这个类还是非常有用的,它的作用类似于 findViewById(),
不同点是LayoutInflater是用来找layout下xml布局文件,并且实例化!而findViewById()是找具体xml下的具体 widget控件(如:Button,TextView等)。
为了让大家容易理解我做了一个简单的Demo,主布局main.xml里有一个TextView和一个Button,当点击Button,出现 Dialog,而这个Dialog的布局方式是我们在layout目录下定义的custom_dialog.xml文件(里面左右分布,左边 ImageView,右边TextView)。
效果图如下:
下面我将详细的说明Demo的实现过程:
1、新建一个 Android工程,我们命名为LayoutInflaterDemo.
2、修改main.xml布局,里面主要在原来基础上增加了一个Button.代码如下:
view plaincopy to clipboardprint?
<?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/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ShowCustomDialog"
/>
</LinearLayout>
<?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/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ShowCustomDialog"
/>
</LinearLayout>
3.定义对话框的布局方式,我们在layout目录下,新建一个名为 custom_dialog.xml文件具体代码如下:
view plaincopy to clipboardprint?
<?xml version="1.0"
encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
>
<ImageView android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginRight="10dp"
/>
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textColor="#FFF"
/>
</LinearLayout>
4.修改主程序LayouInflaterDemo.java代码如下:
view plaincopy to clipboardprint?
package com.android.tutor;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class LayoutInflaterDemo extends Activity implements
OnClickListener {
private Button button;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button)findViewById(R.id.button);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
showCustomDialog();
}
public void showCustomDialog()
{
AlertDialog.Builder builder;
AlertDialog alertDialog;
Context mContext = LayoutInflaterDemo.this;
//下面俩种方法都可以
////LayoutInflater inflater = getLayoutInflater();
LayoutInflater inflater = (LayoutInflater)
mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.custom_dialog,null);
TextView text = (TextView) layout.findViewById(R.id.text);
text.setText("Hello, Welcome to Mr Wei's blog!");
ImageView image = (ImageView) layout.findViewById(R.id.image);
image.setImageResource(R.drawable.icon);
builder = new AlertDialog.Builder(mContext);
builder.setView(layout);
alertDialog = builder.create();
alertDialog.show();
}
}
5、最后执行之,点击Button,将得到上述效果。
本文出自 “Android_Tutor” 博客,请务必保留此出处http://weizhulin.blog.51cto.com/1556324/311450
分享到:
相关推荐
Android高手进阶教程之----Android 中LayoutInflater的使用! .doc Android高手进阶教程之----Android 中MenuInflater的使用(布局定义菜单)! .doc Android高手进阶教程之----Android 中Preferences的使用! .doc ...
### Android高手进阶教程知识点概览 #### 一、Android常用命令集锦 - **ADB命令**: ADB(Android Debug Bridge)是Android平台下用于调试的工具,它可以帮助开发者进行设备管理、应用安装与卸载等操作。 - `adb ...
### Android高手进阶教程知识点概览 #### 一、Android常用命令集锦 在进行Android开发的过程中,掌握一些常用的命令可以极大地提高工作效率。本章节主要介绍了一些常用的Android命令及其应用场景。 - **adb命令**...
《Android高手进阶教程》是一份详尽的指南,旨在帮助开发者深入了解并掌握Android平台的高级功能与技术细节。这份教程覆盖了多个关键主题,包括系统命令、UI组件的定制化、数据存储、网络通信、位置服务等,是提升...
这份源码提供了丰富的示例和实践,非常适合毕业设计学习和进阶Android开发者提升UI设计能力。 首先,让我们深入理解Android中的Dialog。Dialog是Android应用程序中的一种轻量级窗口,它浮现在当前活动(Activity)...
在本教程中,我们将深入探讨如何在Android应用中使用GridView。 首先,理解GridView的基本概念是至关重要的。GridView继承自ViewGroup,它将子视图(Views)组织成一个可滚动的二维数组。每个子视图占据网格中的一...
总之,《何红辉关爱民-Android源码设计模式解析与实战》是一本深入浅出的Android进阶书籍,它将帮助开发者从源码层面理解Android,运用设计模式提高开发效率,从而在Android开发领域达到更高的专业水平。无论是初学...
在Android开发中,Dialog是一种非常常见的用户界面组件,它用于在主界面之上显示临时的、半透明的窗口,用于向用户展示信息或者进行简单的交互。本文将深入探讨如何创建一个具有选择功能的对话框(Dialog),包括...
- **内容介绍**:讲解了如何在Android应用中使用图像资源、绘制图形和文本,以及如何实现基本的2D图形操作。 #### 8. DDMS工具 - **视频链接**:http://www.400gb.com/file/64194953 - **内容介绍**:DDMS(Device ...
在Android开发中,ListView是一种非常常见的控件,用于展示大量数据的列表形式。它具有高度可定制性,能够实现各种自定义布局和交互效果。本教程将深入讲解如何实现一个基本的ListView,并在用户点击列表项时跳转到...
虽然没有具体的描述内容,但从标题我们可以推测,它可能会涵盖一些基础到进阶的Android控件使用技巧以及事件监听机制。 1. **控件介绍**: - **TextView**: 显示文本,可以设置字体、颜色、大小等属性。 - **...
1. **布局加载**:`LauncherActivity`会调用`onCreate()`方法初始化界面,这里会涉及到`LayoutInflater`的使用,将XML布局文件转换为视图对象。 2. **触摸事件处理**:`onTouchEvent()`方法处理用户触摸屏幕的事件...
在Android开发中,ViewPager是一个非常重要的组件,常用于实现页面滑动效果,尤其在展示多个相似内容的页面时。在本实例中,我们将探讨如何利用ViewPager实现一些高级使用技巧,特别是自定义滑块来标记当前页面。 ...
在Android开发中,ListView是常用的一种控件,用于展示大量数据列表。为了增强用户体验,开发者经常需要对ListView...同时,这也是Android开发者进阶过程中不可或缺的一部分,能够加深对Android系统和UI设计的理解。
本教程将通过一个名为"FloatWindowDemo"的项目,深入讲解如何在Android系统中创建和管理桌面悬浮窗。 首先,我们来了解悬浮窗的基本概念。在Android中,悬浮窗是基于系统权限`SYSTEM_ALERT_WINDOW`实现的,它允许...
首先,实现桌面悬浮窗的关键在于使用Android的SYSTEM_ALERT_WINDOW权限。在AndroidManifest.xml文件中添加以下权限: ```xml <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> ``` ...
在Android开发中,桌面悬浮窗(Floating Window)是一种常见的功能,它可以实现在用户界面上方显示一个小窗口,常用于提供快捷操作或者实时信息展示。本教程将深入探讨如何实现类似360手机卫士和淘宝手机助手的桌面...
《Android源码设计模式解析与实战》是一本深入探讨Android系统源码中设计模式应用的专业书籍,适合已经有一定Android开发基础并希望进一步提升技术能力的开发者阅读。这本书旨在通过实例解析,帮助读者理解并掌握...