`
7090
  • 浏览: 279507 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(转)LayoutInflater作用及使用

 
阅读更多
备注:
LayoutInflater主要用于对于不再一个layerout里面的空间添加到当前的界面中去

作用:
1、对于一个没有被载入或者想要动态载入的界面, 都需要使用inflate来载入.

2、对于一个已经载入的Activity, 就可以使用实现了这个Activiyt的的findViewById方法来获得其中的界面元素.

方法:
   Android里面想要创建一个画面的时候, 初学一般都是新建一个类, 继承Activity基类, 然后在onCreate里面使用setContentView方法来载入一个在xml里定义好的界面.

   其实在Activity里面就使用了LayoutInflater来载入界面, 通过getSystemService(Context.LAYOUT_INFLATER_SERVICE)方法可以获得一个 LayoutInflater, 也可以通过LayoutInflater inflater = getLayoutInflater();来获得.然后使用inflate方法来载入layout的xml,

下面是一个简单的例子:

首先我们要知道,什么是已经被载入的layout,什么是还没有载入的.我们启动一个应用,与入口Activity相关的layout{常见的是main.xml}就是被载入的,即在Oncreate()中的.而其他的layout是没有被载入的.就要动态载入了或通过另一个activity.

在实际开发种LayoutInflater这个类还是非常有用的,它的作用类似于 findViewById(),
不同点是LayoutInflater是用来找layout下xml布局文件,并且实例化!而findViewById()是找具体xml下的具体 widget控件.
为了让大家容易理解我[转]做了一个简单的Demo,主布局main.xml里有一个TextView和一个Button,当点击Button,出现 Dialog,而这个Dialog的布局方式是我们在layout目录下定义的custom_dialog.xml文件(里面左右分布,左边 ImageView,右边TextView)。




LayoutInflater作用及使用

代码如下:
package com.bivin;

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 MainActivity 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 = MainActivity.this;

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();
}
}



原文:http://blog.sina.com.cn/s/blog_629b701e0100rg4d.html
  • 大小: 11.4 KB
分享到:
评论

相关推荐

    Android 中级应用 一 LayoutInflater 的使用

    在Android应用程序中,我们通常使用XML来定义用户界面的布局,而`LayoutInflater`则起到了桥梁的作用,将静态的XML布局文件转换成可交互的UI组件。 `LayoutInflater`的基本用法包括以下步骤: 1. **获取实例**:...

    Android 中LayoutInflater的使用

    1. **LayoutInflater的作用**:将XML布局文件转换为视图对象,使得我们可以在运行时动态地创建和操作界面。 2. **使用方法**:通过`LayoutInflater.from(Context)`获取LayoutInflater实例,然后调用`inflate()`方法...

    android中LayoutInflater的使用.pdf

    在本文中,我们将深入探讨`LayoutInflater`的使用及其重要性。 `LayoutInflater`的主要功能: 1. **实例化布局**: 与`findViewById()`不同,`LayoutInflater`是用来加载整个XML布局文件,而不是单个视图控件。通过`...

    Android开发中LayoutInflater用法详解

    ` 这是Activity提供的一个便捷方法,实际上也是调用了PhoneWindow的`getLayoutInflater()`,最终会转到`LayoutInflater.from(context)`。 2. `LayoutInflater inflater = LayoutInflater.from(context);` 这是最常见...

    Android中使用LayoutInflater要注意的一些坑

    在本文中,我们将深入探讨使用LayoutInflater时需要注意的一些关键点,以避免潜在的问题和陷阱。 首先,理解LayoutInflater.inflate()方法的三个参数至关重要。这个方法通常用于动态加载XML布局并将其插入到视图...

    AsyncTask、JSONAdapter、LayoutInflater的实例

    例如,当你需要动态添加或者删除布局时,如在聊天应用中添加新的消息项,或者在设置界面中根据用户选择添加或移除选项,LayoutInflater就起到了核心作用。 综合运用这三个概念,可以实现高效且流畅的Android应用。...

    基于Android LayoutInflater的使用介绍

    `LayoutInflater`的作用就是将这些静态的XML布局转化为可以在屏幕上显示的动态视图对象。与`Activity`中的`findViewById()`方法不同,`LayoutInflater`不寻找具体的控件,而是解析整个布局文件并创建其中包含的所有...

    Android LayoutInflater中 Inflate()方法应用

    `inflate()` 方法是`LayoutInflater` 的核心方法,它的作用是解析XML布局文件,并将其转换为Android视图层次结构。下面将详细阐述`inflate()` 方法的用法及其与其他方法的区别。 首先,`inflate()` 方法的基本使用...

    关于Android开发的一些笔记

    1. **`LayoutInflater`的作用**: - `LayoutInflater`的主要功能是将XML布局文件转换为Android运行时可以操作的视图对象。这使得开发者可以在程序运行时动态地加载和插入布局,而不是在应用程序启动时一次性加载...

    使用inflater实现窗体布局

    这篇博客“使用inflater实现窗体布局”将深入探讨如何使用`LayoutInflater`来实现这一功能。 `LayoutInflater`是Android SDK中的一个关键类,它位于`android.view.LayoutInflater`包中。它的主要作用是从XML布局...

    手机页面的转换--setContentView的应用

    Fragment有自己的`onCreateView()`方法,其中也需要使用`LayoutInflater`和`setContentView()`的变体`setView()`来加载布局。 此外,Android提供了多种动画机制,使得页面转换更加流畅和吸引人。通过设置进入和退出...

    LayouInflater

    `LayoutInflater` 的作用在于动态地创建UI元素,使得开发者可以灵活地构建和更新界面。在"android LayouInflater 页面跳转 button点击"这个主题中,我们将深入探讨`LayoutInflater`的使用以及与页面跳转和按钮点击...

    新闻界面的实现-碎片的使用

    - 创建一个新的Java类,继承自Fragment类,并重写必要的方法,如onCreateView(),在此方法中使用LayoutInflater来创建布局。 - 在XML布局文件中定义碎片的UI结构,通常包含一个根布局,如LinearLayout、...

    Android inflater 用法及不同点

    Android inflater 用法及不同点 Android inflater 是 Android 开发中的一种非常有用的工具类,类似于 findViewById()。它的主要作用是将 XML 布局文件实例化,并将其转换为 View 对象,以便在 Activity 中使用。 ...

    深入解析Android App的LayoutInflate布局

    在这个例子中,我们使用`LayoutInflater`的`inflate()`方法加载`item_button`布局,并将其添加到`ListView`的`parent`中,但不直接附加(`false`)。尽管如此,`Button`的宽高设置依然有效,因为它在解析时使用了`...

    Fragment的简单使用

    本文将深入探讨Fragment的简单使用及其在Android开发中的作用。 Fragment的基本概念: Fragment是一个可以嵌入到Activity中的UI部分,它有自己的生命周期和回调方法,如onCreate(), onCreateView(), onViewCreated...

    PingXinView 1.rar

    本文将深入探讨如何使用自定义View实现一个仿小红书开屏动画,重点介绍平行动画的原理和实现方法,以及自定义容器和自定义LayoutInflater的应用。 首先,我们来看“平行动画”。平行动画是一种常见的视图动画效果,...

    SkinDemo.zip

    4. **替换系统`LayoutInflater`**:在应用的`Activity`或`Fragment`中,用自定义的`LayoutInflator`替换默认的`LayoutInflater`实例,确保后续的布局加载都会使用新的皮肤资源。 5. **刷新界面**:最后,调用`...

Global site tag (gtag.js) - Google Analytics