淺析Android手機衛(wèi)士自定義控件的屬性
上一節(jié)完成的自定義組合控件,靈活性不夠,控件的顯示信息上,仿照系統(tǒng)屬性,自定義自己的屬性
上一節(jié)組合控件SettingItemView中有三個控件,分別是TextView大標題,TextView描述,CheckBox復選框
自定義屬性 tsh:title=”大標題” 和tsh:desc_on=”小標題開啟”,tsh:desc_off=”小標題關閉”
添加命名空間,xmlns:tsh=”http://schemas.android.com/apk/res/包名"
在res/values/目錄下創(chuàng)建 attrs.xml文件
添加節(jié)點 <declare-styleable name=”TextView”>
節(jié)點下添加節(jié)點<attr name=”title” format=”string”/>,添加其他兩個屬性的節(jié)點
在布局文件使用的時候,會調用帶有兩個參數(shù)的構造方法
在這個構造方法里面,會傳遞一個AttributeSet對象
調用AttributeSet對象的getAttributeValue()方法,得到屬性值,參數(shù):索引位置,不推薦
調用AttributeSet對象的getAttributeValue(namespace,name)方法,參數(shù):命名空間,屬性名
調用TextView對象的setText()方法,直接給設置進去
描述部分,在setChecked()方法里面,判斷,再設置
SettingItemView.java
package com.qingguow.mobilesafe.ui;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.CheckBox;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.qingguow.mobilesafe.R;
public class SettingItemView extends RelativeLayout {
private TextView tv_title;
private TextView tv_desc;
private CheckBox cb_status;
private String desc_on;
private String desc_off;
/**
* 初始化View對象
* @param context
*/
private void initView(Context context) {
View.inflate(context, R.layout.setting_item_view, this);
cb_status=(CheckBox) this.findViewById(R.id.cb_status);
tv_desc=(TextView) this.findViewById(R.id.tv_desc);
tv_title=(TextView) this.findViewById(R.id.tv_title);
}
/**
* 判斷是否選中
* @return
*/
public boolean isChecked(){
return cb_status.isChecked();
}
/**
* 設置是否選中
* @param status
*/
public void setChecked(boolean status){
if(status){
tv_desc.setText(desc_on);
}else{
tv_desc.setText(desc_off);
}
cb_status.setChecked(status);
}
/**
* 設置顯示文本
* @param text
*/
public void setDesc(String text){
tv_desc.setText(text);
}
public SettingItemView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initView(context);
}
public SettingItemView(Context context, AttributeSet attrs) {
super(context, attrs);
initView(context); //獲取傳遞的屬性
String title=attrs.getAttributeValue("http://schemas.android.com/apk/res/com.qingguow.mobilesafe", "title");
tv_title.setText(title);
desc_on=attrs.getAttributeValue("http://schemas.android.com/apk/res/com.qingguow.mobilesafe", "desc_on");
desc_off=attrs.getAttributeValue("http://schemas.android.com/apk/res/com.qingguow.mobilesafe", "desc_off");
}
public SettingItemView(Context context) {
super(context);
initView(context);
}
}
activity_setting.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tsh="http://schemas.android.com/apk/res/com.qingguow.mobilesafe" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:layout_width="match_parent" android:layout_height="40dp" android:background="#ccc" android:gravity="center" android:text="設置中心" android:textSize="20sp" /> <com.qingguow.mobilesafe.ui.SettingItemView tsh:title="設置自動更新" tsh:desc_on="設置自動更新開啟" tsh:desc_off="設置自動更新關閉" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/siv_item"> </com.qingguow.mobilesafe.ui.SettingItemView> </LinearLayout>
attrs.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="TextView"> <attr name="title" format="string" /> <attr name="desc_on" format="string" /> <attr name="desc_off" format="string" /> </declare-styleable> </resources>
以上是針對Android手機衛(wèi)士自定義控件的屬性相關介紹,希望對大家有所幫助!
- Android編程實現(xiàn)號碼歸屬地查詢的方法
- Android手機號碼歸屬地的查詢
- 淺析Android手機衛(wèi)士關閉自動更新
- 詳解Android 手機衛(wèi)士設置向導頁面
- 深入淺析Android手機衛(wèi)士保存密碼時進行md5加密
- 淺析Android手機衛(wèi)士sim卡綁定
- 淺析Android手機衛(wèi)士讀取聯(lián)系人
- 淺析Android手機衛(wèi)士保存手機安全號碼
- 淺析Android手機衛(wèi)士接收短信指令執(zhí)行相應操作
- 淺析Android手機衛(wèi)士手機定位的原理
- 淺析Android手機衛(wèi)士之手機實現(xiàn)短信指令獲取位置
- 淺析Android 手機衛(wèi)士設備管理權限鎖屏
- 淺析Android手機衛(wèi)士之號碼歸屬地查詢
相關文章
Android使用Intent.ACTION_SEND分享圖片和文字內容的示例代碼
這篇文章主要介紹了Android使用Intent.ACTION_SEND分享圖片和文字內容的示例代碼的實例代碼,具有很好的參考價值,希望對大家有所幫助,一起跟隨小編過來看看吧2018-05-05
Android 監(jiān)聽手機GPS打開狀態(tài)實現(xiàn)代碼
這篇文章主要介紹了Android 監(jiān)聽手機GPS打開狀態(tài)實現(xiàn)代碼的相關資料,需要的朋友可以參考下2017-05-05
Android使用第三方服務器Bmob實現(xiàn)發(fā)送短信驗證碼
這篇文章主要介紹了Android使用第三方服務器Bmob實現(xiàn)發(fā)送短信驗證碼的思路詳解,需要的朋友可以參考下2016-09-09
Android實現(xiàn)Android?APP自動更新功能
在移動應用的全生命周期中,版本迭代和用戶更新體驗至關重要,傳統(tǒng)的做法是依賴?Google?Play?商店強制推送更新,但在某些場景下,我們需要更即時地控制更新流程,所以本文給大家介紹了Android實現(xiàn)Android?APP自動更新功能,需要的朋友可以參考下2025-04-04
Android ImageView 固定寬高比例的實現(xiàn)方法
這篇文章主要介紹了Android ImageView 固定寬高比例的實現(xiàn)方法的相關資料,,方法一:設置 adjustViewBounds="true",方法二:使用 Universal-Image-Loader 圖片緩存類,需要注意的是方法二和方法一同時使用導致設置無效,需要的朋友可以參考下2017-07-07

