91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android的LayoutInflater

發布時間:2020-06-09 05:34:35 來源:網絡 閱讀:255 作者:wufanxin 欄目:移動開發

在 實際開發中LayoutInflater這個類還是非常有用的,它的作用類似于findViewById()。不同點是LayoutInflater是用 來找res/layout/下的xml布局文件,并且實例化;而findViewById()是找xml布局文件下的具體widget控件(如 Button、TextView等)。
具體作用:
1、對于一個沒有被載入或者想要動態載入的界面,都需要使用LayoutInflater.inflate()來載入;

2、對于一個已經載入的界面,就可以使用Activiyt.findViewById()方法來獲得其中的界面元素。

LayoutInflater 是一個抽象類,在文檔中如下聲明:

publicabstractclass LayoutInflater extends Object 



獲得 LayoutInflater 實例的三種方式

1.LayoutInflater inflater = getLayoutInflater();  //調用Activity的getLayoutInflater()

2.LayoutInflater localinflater =(LayoutInflater)context.getSystemService

                                                (Context.LAYOUT_INFLATER_SERVICE);

3. LayoutInflater inflater = LayoutInflater.from(context);  



其實,這三種方式本質是相同的,從源碼中可以看出:這三種方式最終本質是都是調用的Context.getSystemService()。

下面是一個Demo

  1. main.xml

  2. <?xml version="1.0"      

  3. encoding="utf-8"?>     

  4. <LinearLayout      

  5. xmlns:android="http://schemas.android.com/apk/res/android"    

  6.     android:orientation="vertical"    

  7.     android:layout_width="fill_parent"    

  8.     android:layout_height="fill_parent"    

  9.     >     

  10. <TextView       

  11.     android:layout_width="fill_parent"      

  12.     android:layout_height="wrap_content"      

  13.     android:text="@string/hello"    

  14.     />     

  15. <Button     

  16.     android:id="@+id/button"    

  17.     android:layout_width="wrap_content"    

  18.     android:layout_height="wrap_content"    

  19.     android:text="ShowCustomDialog"    

  20.     />     

  21. </LinearLayout>  

復制代碼

定義對話框的布局方式custom_dialog.xml

  1. <?xml version="1.0"      

  2. encoding="utf-8"?>     

  3. <LinearLayout      

  4. xmlns:android="http://schemas.android.com/apk/res/android"    

  5.               android:orientation="horizontal"    

  6.               android:layout_width="fill_parent"    

  7.               android:layout_height="fill_parent"    

  8.               android:padding="10dp"    

  9.               >     

  10.     <ImageView android:id="@+id/p_w_picpath"    

  11.                android:layout_width="wrap_content"    

  12.                android:layout_height="fill_parent"    

  13.                android:layout_marginRight="10dp"    

  14.                />     

  15.     <TextView android:id="@+id/text"    

  16.               android:layout_width="wrap_content"    

  17.               android:layout_height="fill_parent"    

  18.               android:textColor="#FFF"    

  19.               />     

  20. </LinearLayout>   

復制代碼

Activity代碼

  1. package com.android.tutor;  

  2. import android.app.Activity;  

  3. import android.app.AlertDialog;  

  4. import android.content.Context;  

  5. import android.os.Bundle;  

  6. import android.view.LayoutInflater;  

  7. import android.view.View;  

  8. import android.view.View.OnClickListener;  

  9. import android.widget.Button;  

  10. import android.widget.ImageView;  

  11. import android.widget.TextView;  

  12. public class LayoutInflaterDemo extends Activity implements   

  13. OnClickListener {  

  14.       

  15. private Button button;  

  16.     public void onCreate(Bundle savedInstanceState) {  

  17.         super.onCreate(savedInstanceState);  

  18.         setContentView(R.layout.main);  

  19.           

  20.         button = (Button)findViewById(R.id.button);  

  21.         button.setOnClickListener(this);  

  22.     }  

  23. @Override 

  24. public void onClick(View v) {  

  25.     

  26.   showCustomDialog();  

  27. }  

  28.    

  29. public void showCustomDialog()  

  30. {  

  31.   AlertDialog.Builder builder;  

  32.   AlertDialog alertDialog;  

  33.   Context mContext = LayoutInflaterDemo.this;  

  34.     

  35.   //下面倆種方法都可以  

  36.   //LayoutInflater inflater = getLayoutInflater();  

  37.   LayoutInflater inflater = (LayoutInflater)   mContext.getSystemService(LAYOUT_INFLATER_SERVICE);  

  38.   View layout = inflater.inflate(R.layout.custom_dialog,null);  //返回值為view

  39.   TextView text = (TextView) layout.findViewById(R.id.text);  

  40.   text.setText("Hello, Welcome to Mr Wei's blog!");  

  41.   ImageView p_w_picpath = (ImageView) layout.findViewById(R.id.p_w_picpath);  

  42.   p_w_picpath.setImageResource(R.drawable.icon);  

  43.   builder = new AlertDialog.Builder(mContext);  

  44.   builder.setView(layout);  

  45.   alertDialog = builder.create();  

  46.   alertDialog.show();  

  47. }  

  48. }   


復制代碼

運行效果:


Android的LayoutInflater


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

静海县| 娱乐| 十堰市| 栖霞市| 宜川县| 沂南县| 临邑县| 泗洪县| 青河县| 上饶县| 勐海县| 洞口县| 莱芜市| 类乌齐县| 海丰县| 中方县| 循化| 静安区| 长春市| 曲麻莱县| 金平| 巴彦县| 崇仁县| 承德县| 黔西县| 芦山县| 拉萨市| 麻栗坡县| 离岛区| 临城县| 丹阳市| 桐城市| 凤阳县| 万荣县| 平安县| 平山县| 教育| 湛江市| 浦江县| 庆阳市| 淮南市|