Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android手機衛士(十四):自定義組合控件構件布局結構

Android手機衛士(十四):自定義組合控件構件布局結構

編輯:Android開發實例

  由於設置中心條目中的布局都很類似,所以可以考慮使用自定義組合控件來簡化實現

Android手機衛士(十四):自定義組合控件構件布局結構

  自定義組合控件

  1.將已經編寫好的布局文件,抽取到一個類中去做管理,下次還需要使用此布局結構的時候,直接使用組合控件對應的對象.

  2.將組合控件的布局,抽取到單獨的一個xml中

  新建布局文件:setting_item_view.xml,將上篇文章中布局文件中的代碼放進去

XML/HTML代碼
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="wrap_content" >  
  5.   
  6.     <RelativeLayout  
  7.         android:layout_width="match_parent"  
  8.         android:layout_height="wrap_content"  
  9.         android:padding="5dp" >  
  10.   
  11.         <TextView  
  12.             android:id="@+id/tv_title"  
  13.             android:layout_width="wrap_content"  
  14.             android:layout_height="wrap_content"  
  15.             android:text="自動更新設置"  
  16.             android:textColor="#000"  
  17.             android:textSize="18sp" />  
  18.   
  19.         <TextView  
  20.             android:id="@+id/tv_des"  
  21.             android:layout_width="wrap_content"  
  22.             android:layout_height="wrap_content"  
  23.             android:layout_below="@id/tv_title"  
  24.             android:text="自動更新已關閉"  
  25.             android:textColor="#000"  
  26.             android:textSize="18sp" />  
  27.   
  28.         <CheckBox  
  29.             android:id="@+id/cb_box"  
  30.             android:layout_width="wrap_content"  
  31.             android:layout_height="wrap_content"  
  32.             android:layout_alignParentRight="true"  
  33.             android:layout_centerVertical="true" />  
  34.   
  35.         <View  
  36.             android:layout_width="match_parent"  
  37.             android:layout_height="1dp"  
  38.             android:layout_below="@id/tv_des"  
  39.             android:background="#000" />  
  40.     </RelativeLayout>  
  41.   
  42. </RelativeLayout>  

  3.通過一個單獨的類SettingItemView.java,去加載此段布局文件.

Java代碼
  1. package com.wuyudong.mobilesafe.view;  
  2.   
  3. import com.wuyudong.mobilesafe.R;  
  4.   
  5. import android.content.Context;  
  6. import android.util.AttributeSet;  
  7. import android.view.View;  
  8. import android.widget.CheckBox;  
  9. import android.widget.RelativeLayout;  
  10. import android.widget.TextView;  
  11.   
  12. public class SettingItemView extends RelativeLayout {  
  13.   
  14.     private TextView tv_des;  
  15.     private CheckBox cb_box;  
  16.   
  17.     public SettingItemView(Context context) {  
  18.         this(context, null);  
  19.     }  
  20.   
  21.     public SettingItemView(Context context, AttributeSet attrs) {  
  22.         this(context, attrs, 0);  
  23.     }  
  24.   
  25.     public SettingItemView(Context context, AttributeSet attrs, int defStyle) {  
  26.         super(context, attrs, defStyle);  
  27.         // xml-->view 將設置界面的條目轉換成view對象  
  28.         View.inflate(context, R.layout.setting_item_view, this);  
  29.         // 等同於以下兩行代碼  
  30.         /* 
  31.          * View view = View.inflate(context, R.layout.setting_item_view, null); 
  32.          * this.addView(view); 
  33.          */  
  34.           
  35.         //自定義組合控件中的標題描述  
  36.         TextView tv_title = (TextView) findViewById(R.id.tv_title);  
  37.         tv_des = (TextView) findViewById(R.id.tv_des);  
  38.         cb_box = (CheckBox) findViewById(R.id.cb_box);  
  39.     }  
  40.   
  41. }  

  這樣只需要簡單的幾行代碼就可以完成布局文件的調用

XML/HTML代碼
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent"  
  5.     android:orientation="vertical" >  
  6.   
  7.     <TextView  
  8.         style="@style/TitleStyle"  
  9.         android:text="設置中心" />  
  10.   
  11.     <!--  
  12.     <RelativeLayout  
  13.         android:layout_width="match_parent"  
  14.         android:layout_height="wrap_content"  
  15.         android:padding="5dp" >  
  16.   
  17.         <TextView  
  18.             android:id="@+id/tv_title"  
  19.             android:layout_width="wrap_content"  
  20.             android:layout_height="wrap_content"  
  21.             android:text="自動更新設置"  
  22.             android:textColor="#000"  
  23.             android:textSize="18sp" />  
  24.   
  25.         <TextView  
  26.             android:id="@+id/tv_des"  
  27.             android:layout_width="wrap_content"  
  28.             android:layout_height="wrap_content"  
  29.             android:layout_below="@id/tv_title"  
  30.             android:text="自動更新已關閉"  
  31.             android:textColor="#000"  
  32.             android:textSize="18sp" />  
  33.   
  34.         <CheckBox  
  35.             android:id="@+id/cb_box"  
  36.             android:layout_alignParentRight="true"  
  37.             android:layout_centerVertical="true"  
  38.             android:layout_width="wrap_content"  
  39.             android:layout_height="wrap_content" />  
  40.         <View   
  41.             android:layout_below="@id/tv_des"  
  42.             android:background="#000"  
  43.             android:layout_width="match_parent"  
  44.             android:layout_height="1dp"  
  45.               
  46.             />  
  47.     </RelativeLayout>  
  48.     -->  
  49.   
  50.     <com.wuyudong.mobilesafe.view.SettingItemView  
  51.         android:layout_width="match_parent"  
  52.         android:layout_height="wrap_content" >  
  53.     </com.wuyudong.mobilesafe.view.SettingItemView>  
  54.   
  55. </LinearLayout>  

  運行項目後,有如下效果:

Android手機衛士(十四):自定義組合控件構件布局結構

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved