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

android LayoutInflater 使用示例

阅读更多
    大家好我们这一节讲的是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)。下面我们看一下运行效果吧。

  
  布局文件
main.xml
<?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/myButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ShowCustomDialog"/>

</LinearLayout>

custom_dialog.xml

<?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="#7CFC00" />
</LinearLayout>

    Activity01 类
package xiaohang.zhimeng;


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 Activity01 extends Activity implements OnClickListener{

	private Button button;
	
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
         button = (Button)findViewById(R.id.myButton);
        button.setOnClickListener(this);
    }

	@Override
	public void onClick(View v) {
		showCustomDialog();
	}
	
	public void showCustomDialog(){
		AlertDialog.Builder builder;
		AlertDialog         alertDialog;
		Context mContext = Activity01.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 xh blog");
		ImageView image = (ImageView)layout.findViewById(R.id.image);
		//给ImageView 设置图标
		image.setImageResource(R.drawable.icon);
		builder = new AlertDialog.Builder(mContext);
		builder.setView(layout);
		alertDialog = builder.create();
		alertDialog.show();
	}
}

   原文来自:http://www.cnblogs.com/tt_mc/archive/2010/05/28/1746307.html
  源码见附件。
  • 大小: 29.8 KB
分享到:
评论

相关推荐

    Android LayoutInflater的用法

    在Android开发中,`LayoutInflater`是一个非常重要的工具类,它主要用于将XML布局...如果你希望了解更多关于`LayoutInflater`的细节,建议阅读博客文章(链接已给出),该文章可能会涵盖更多实用示例和深入的技术讲解。

    Android 中级应用 一 LayoutInflater 的使用

    在Android Studio的项目中,`AndroidStudy01`可能是一个包含了示例代码的工程,它可能包含了一个使用`LayoutInflater`的例子,如动态添加布局、自定义视图等。通过学习这个项目,开发者可以更深入地理解`...

    Android LayoutInflater加载布局详解及实例代码

    接下来,我们看一个简单的使用LayoutInflater加载布局的示例代码: ```java LayoutInflater inflater = LayoutInflater.from(this); View view = inflater.inflate(R.layout.my_layout, null); ``` 在这个例子中,...

    LayoutInflater inflate 示例demo

    总的来说,这个"LayoutInflater inflate 示例demo"是一个很好的学习资源,它将帮助你深入理解Android中布局动态加载的过程,以及如何根据需要有效地使用`LayoutInflater`。通过实践,你将能够熟练掌握这一关键的...

    Android 中LayoutInflater的使用

    在这个示例中,`showCustomDialog()`方法首先使用LayoutInflater的`inflate()`方法加载`custom_dialog.xml`,然后找到并初始化Dialog中的ImageView和TextView。接下来,我们可以根据需要设置这些视图的属性,如图像...

    android中LayoutInflater的使用.pdf

    在Android开发中,`LayoutInflater` 是一个至关重要的工具,它负责将XML布局文件转换为视图对象(View objects)。这个过程被称为布局的...理解和熟练使用`LayoutInflater`对于任何Android开发者都是必不可少的技能。

    基于Android LayoutInflater的使用介绍

    在android中,LayoutInflater有点类似于Activity的findViewById(id),不同的是LayoutInflater是用来找layout下的xml布局文件,并且实例化!而findViewById()是找具体xml下的具体 widget控件(如:Button,TextView等)。...

    Android开发实现自定义Toast、LayoutInflater使用其他布局示例

    "Android开发实现自定义Toast、LayoutInflater使用其他布局示例" Android开发实现自定义Toast、LayoutInflater使用其他布局是 Android 应用程序开发中非常重要的一部分。 Toast 是 Android 应用程序中最常用的提示...

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

    总之,理解和正确使用LayoutInflater.inflate()的参数是避免Android开发中出现布局问题的关键。在使用时,确保提供适当的父容器,合理设置`attachToRoot`,并且始终关注视图的测量和布局过程。通过这些注意事项,...

    layoutinflater中嵌套layoutinflater

    在Android开发中,`LayoutInflater` 是一个至关重要的工具类,用于将XML布局文件转换为视图对象并添加到视图层次结构中。标题提到的"layoutinflater中嵌套layoutinflater"涉及到的是在一个布局中使用`LayoutInflater...

    Android LayoutInflater中 Inflate()方法应用

    总的来说,`LayoutInflater` 的`inflate()` 方法是Android应用中动态加载布局的关键,它与`findViewById()` 和`ViewStub` 配合使用,可以灵活地处理各种界面构建需求。了解这些方法的正确使用方式,对于提升Android...

    android ListView 使用 示例

    convertView = LayoutInflater.from(getContext()).inflate(R.layout.list_item, parent, false); } // 设置视图内容 TextView textView = (TextView) convertView.findViewById(R.id.text_view); textView....

    Android gridview使用示例

    在这个"Android GridView使用示例"中,我们将深入探讨如何在Android应用程序中有效地使用GridView。 首先,我们需要在XML布局文件中声明GridView。一个基本的GridView声明可能如下所示: ```xml android:id="@+...

    Android布局加载之LayoutInflater示例详解

    Activity 在界面创建时需要将 XML 布局文件中的内容加载进来,正如我们在 ListView 或者 RecyclerView 中需要将 Item 的布局加载进来一样,都是使用 LayoutInflater 来进行操作的。 LayoutInflater 实例的获取有多种...

    Android GridView使用例子

    在这个"Android GridView使用例子"中,我们将深入探讨如何有效地利用GridView来构建动态且交互性强的用户界面。 1. **GridView的基本概念** GridView继承自AbsListView,它可以显示一列或多列水平对齐的项目。每个...

    Android PopupWindow使用示例

    LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); View popupView = inflater.inflate(R.layout.popup_window_layout, null); // 创建PopupWindow实例,并设置其...

    LayoutInflater inflate例子

    使用`inflate()` 的示例: ```java View view = inflater.inflate(R.layout.my_layout, null); // 不附加到任何视图 ViewGroup parent = findViewById(R.id.parent_view_group); view = inflater.inflate(R.layout....

Global site tag (gtag.js) - Google Analytics