layoutinflate应用

来源:互联网 发布:亚索腥红之月皮肤 知乎 编辑:程序博客网 时间:2024/05/16 18:52

LayoutInflater的作用和findViewById()差不多,不同之处在于LayoutInflater是找layout文件夹下的某个xml布局文件!而 findViewById()是找某一个xml下的具体 widget控件。

LayoutInflater可以将一个xml布局文件转化为View 类型,其代码如下:

View Code
复制代码
 1 package hzx.one; 2  3 import android.app.Activity; 4 import android.app.AlertDialog; 5 import android.app.AlertDialog.Builder; 6 import android.content.DialogInterface; 7 import android.os.Bundle; 8 import android.view.LayoutInflater; 9 import android.view.View;10 import android.view.ViewGroup;11 import android.widget.Button;12 import android.widget.Toast;13 14 public class HzxDialogActivity extends Activity {15     private Button button1;16     private Button button2;17     private Button button3;18     @Override19     public void onCreate(Bundle savedInstanceState) {20         super.onCreate(savedInstanceState);21         setContentView(R.layout.main);22         button1=(Button) findViewById(R.id.button1);23         button1.setText("默认dialog");24         button1.setOnClickListener(new View.OnClickListener() {25             @Override26             public void onClick(View v) {showDialog1();}});27         button2=(Button) findViewById(R.id.button2);28         button2.setText("自定义dialog");29         button2.setOnClickListener(new View.OnClickListener() {30             @Override31             public void onClick(View v) {showDialog2();}});32         button3=(Button) findViewById(R.id.button3);33         button3.setText("自定义toast");34         button3.setOnClickListener(new View.OnClickListener() {35             @Override36             public void onClick(View v) {37                 Toast toast=new Toast(HzxDialogActivity.this);38                 //三种方法定义LayoutInflater39                 //LayoutInflater li=getLayoutInflater();40                 //LayoutInflater li = LayoutInflater.from(HzxDialogActivity.this); 41                 LayoutInflater li = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);42                 43                 View view=li.inflate(R.layout.dialog, (ViewGroup)findViewById(R.id.dialog));44                 toast.setView(view);45                 toast.setDuration(Toast.LENGTH_SHORT);46                 toast.setGravity(0, -20, 20);47                 toast.show();48             }});49     }50     private void showDialog1() {51         AlertDialog.Builder builder=new Builder(this);52         builder.setMessage("are you sure to exit ?");53         builder.setTitle("exit or not ");54         builder.setPositiveButton("yes", new DialogInterface.OnClickListener() {55             @Override56             public void onClick(DialogInterface dialog, int which) {dialog.dismiss();HzxDialogActivity.this.finish();}});57         builder.setNegativeButton("no", new DialogInterface.OnClickListener() {58             @Override59             public void onClick(DialogInterface dialog, int which) {dialog.dismiss();}});60         builder.create().show();61     }62     private void showDialog2(){63         AlertDialog.Builder builder=new Builder(this);64         LayoutInflater li=getLayoutInflater();65         View v=li.inflate(R.layout.dialog, (ViewGroup)findViewById(R.id.dialog));66         builder.setView(v);67         builder.setPositiveButton("yes", new DialogInterface.OnClickListener() {68             @Override69             public void onClick(DialogInterface dialog, int which) {dialog.dismiss();HzxDialogActivity.this.finish();}});70         builder.setNegativeButton("no", new DialogInterface.OnClickListener() {71             @Override72             public void onClick(DialogInterface dialog, int which) {dialog.dismiss();}});73         builder.create().show();74     }75 }
复制代码



main.xml布局文件

复制代码
 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3     android:layout_width="fill_parent" 4     android:layout_height="fill_parent" android:orientation="vertical"> 5 <TextView   6     android:layout_width="fill_parent"  7     android:layout_height="wrap_content"  8     android:text="@string/hello" 9     />10 <Button android:text="Button" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>11 <Button android:text="Button" android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>12 <Button android:text="Button" android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>13 </LinearLayout>
复制代码

dialog.xml布局文件

复制代码
 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3     android:layout_width="fill_parent" 4     android:layout_height="fill_parent" 5     android:orientation="horizontal" 6     android:id="@+id/dialog"> 7      8     <ImageView android:id="@+id/imageView1" android:layout_height="wrap_content" android:src="@drawable/icon" android:layout_width="wrap_content"></ImageView> 9     <TextView android:layout_height="wrap_content" android:text="@string/hello" android:layout_width="wrap_content" android:id="@+id/textView1"></TextView>10 </LinearLayout>
复制代码
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孩子受凉流清水鼻涕怎么办 一遇冷空气就打喷嚏流鼻涕怎么办 打喷嚏鼻塞流清鼻涕怎么办 哺乳期鼻子不通气有鼻涕怎么办 宝宝热伤风流清鼻涕怎么办 哺乳期感冒流鼻涕怎么办最有效 小孩睡觉太晚了怎么办 孩子晚上睡觉不安稳怎么办 月子里宝宝睡觉不安稳怎么办 月子宝宝睡觉不安稳怎么办 孩子老是流黄鼻涕怎么办 孕妇流黄鼻涕怎么办速效办法 孕妇感冒流黄鼻涕怎么办 孕妇有黄痰和黄鼻涕怎么办 孕妇感冒了流黄鼻涕怎么办 怀孕感冒了怎么办鼻塞流鼻涕 怀孕初期感冒了怎么办鼻塞流鼻涕 怀孕9个月流鼻涕怎么办 怀孕5个月流鼻涕怎么办 小孩老是流黄鼻涕口臭怎么办 狗狗有食欲流黄鼻涕拉稀怎么办 小孩流黄鼻涕咳嗽怎么办 小狗感冒了一直打喷嚏怎么办 眼干眼屎多模糊怎么办 宝宝眼睛上火眼屎多怎么办 眼睛发干眼屎多怎么办 三个月宝宝眼睛流泪有眼屎怎么办 小孩眼睛流泪有眼屎怎么办 宝宝上火眼睛有好多眼屎怎么办 宝宝眼睛流泪还有眼屎怎么办? 新生儿眼睛上火眼屎多怎么办 铁耳屎在最里面怎么办 婴儿鼻屎特别深怎么办 鼻子干呼吸就疼怎么办 儿童鼻子里总有好多鼻屎怎么办 小孩鼻子里有鼻屎呼吸不通怎么办 鼻子不通通气鼻屎粘在鼻子怎么办 鼻子里面干燥长鼻屎怎么办 鼻孔里干的难受怎么办 每天有很多鼻屎怎么办 鼻子里面干的疼怎么办