大家好我们这一节讲的是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)。
代码实现:
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;
//下面俩种方法都可以
1、
LayoutInflater inflater = getLayoutInflater();
2、
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);
ImageView image =
(ImageView) layout.findViewById(R.id.image);
text.setText("Hello,
Welcome to Mr Wei's blog!");
image.setImageResource(R.drawable.icon);
builder = new
AlertDialog.Builder(mContext);
builder.setView(layout);
alertDialog =
builder.create();
alertDialog.show();
}
}
代码实现:
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;
@Override
public void onClick(View v) {
}
public void showCustomDialog()
{
}
}
本文通过一个简单实例介绍LayoutInflater的使用方法,演示如何加载自定义对话框布局,并实例化控件。
359

被折叠的 条评论
为什么被折叠?



