極力推薦文章:歡迎收藏
Android 干貨分享
本篇文章主要介紹 Android 開(kāi)發(fā)中的部分知識(shí)點(diǎn),通過(guò)閱讀本篇文章,您將收獲以下內(nèi)容:
自定義View類(lèi)實(shí)現(xiàn)
自定義View標(biāo)簽
自定義View 布局
自定義View 選擇器
自定義View 素材
Activity 引用 自定義view 控件
Activity使用自定義View
itemCheckView 主要用于自定義選中item,常用于Settings 模塊中,實(shí)現(xiàn)效果如下:
public class ItemCheckView extends RelativeLayout { // 每一個(gè)xml中的結(jié)點(diǎn),都需要轉(zhuǎn)換成java中的對(duì)象才可以去運(yùn)行 // 轉(zhuǎn)換成一個(gè)對(duì)象,調(diào)用其構(gòu)造方法,在調(diào)用構(gòu)造方法的時(shí)候,去做xml--->view操作 private static final String TAG = "ItemCheckView"; private TextView tv_title; private TextView tv_des; private CheckBox cb_box; private static final String NAMESPACE = "http://schemas.android.com/apk/res/com.programandroid"; private String mDesTitle; private String mDesOff; private String mDesOn; public ItemCheckView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); initAttrs(attrs); initUI(context); } public ItemCheckView(Context context, AttributeSet attrs) { super(context, attrs); initAttrs(attrs); initUI(context); } public ItemCheckView(Context context) { super(context); initUI(context); } // 多帶帶抽取出來(lái)的 xml--->view private void initUI(Context context) { View.inflate(context, R.layout.item_check_view, this); tv_title = (TextView) findViewById(R.id.tv_title); tv_des = (TextView) findViewById(R.id.tv_des); cb_box = (CheckBox) findViewById(R.id.cb_box); tv_title.setText(mDesTitle); } // checkbox是否選中的狀態(tài),就決定了當(dāng)前條目是否開(kāi)啟版本更新檢測(cè) // checbbox選中狀態(tài),和版本更新?tīng)顟B(tài)綁定 /** * 當(dāng)前條目的選中狀態(tài),是否開(kāi)啟更新的選中狀態(tài) */ public boolean isCheck() { // 是否要去更新,由checkbox選中狀態(tài)決定 true選中 false未選中 return cb_box.isChecked(); } /** * @param isCheck * 傳遞一個(gè)選中未選中的狀態(tài)變量(true 選中 false未選中) */ public void setCheck(boolean isCheck) { cb_box.setChecked(isCheck); if (isCheck) { tv_des.setText(mDesOn); } else { tv_des.setText(mDesOff); } } /** * @param attrs * 包含了屬性名稱和屬性值的set集合 */ private void initAttrs(AttributeSet attrs) { // 打印屬性總個(gè)數(shù) /* * Log.i(tag, "attrs.getAttributeCount() = "+attrs.getAttributeCount()); * for(int i=0;i2. 自定義View標(biāo)簽 1.注意 :自定義 Android 命名空間 同Android 命名空間`(xmlns:android="http://schemas.android.com/apk/res/android"
2. 注意:自定義View 屬性
)方法一樣,想使用自定義view的屬性,必須聲明自定義view`的命名空間
(xmlns:programandroid="http://schemas.android.com/apk/res/com.programandroid")自定義View 屬性如下:
programandroid:desOff=" 不選中" programandroid:desOn=" 選中" programandroid:desTitle=" WIFI "屬性聲明在res/values/attrs.xml中定義
3. 自定義View 布局 4. 自定義View 選擇器CheckBox 自定義樣式
自定義 item選擇器
5. 自定義View 素材 6.自定義view 在Activity中布局引用 7. Activity使用自定義View/** * 自定義InitItemCheckView Activity 調(diào)用 */ private void InitItemCheckView() { // TODO Auto-generated method stub final ItemCheckView mItemCheckView = (ItemCheckView) findViewById(R.id.custom_item_check_view); mItemCheckView.setCheck(false); mItemCheckView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // 1,獲取當(dāng)前條的原有狀態(tài) boolean check = mItemCheckView.isCheck(); // 2,對(duì)第一步獲取的狀態(tài)取反 mItemCheckView.setCheck(!check); if (!check) { } else { } } }); }至此,本篇已結(jié)束,如有不對(duì)的地方,歡迎您的建議與指正。同時(shí)期待您的關(guān)注,感謝您的閱讀,謝謝!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/75873.html
摘要:變量的函數(shù)引用的自定義屬性被稱為變量。為此,可讀性和可維護(hù)性是自定義屬性最大的優(yōu)勢(shì)。自定義屬性作用域在中,變量有作用域一說(shuō)。因此,在選擇器中聲明的自定義屬性,其作用域的范圍是全局范圍,也就是全局作用域。 引言 ??CSS語(yǔ)言是一種聲明式語(yǔ)言,不像其他語(yǔ)言有變量、條件和邏輯等特性,因?yàn)檫@個(gè)原因,社區(qū)中有了各種CSS處理器語(yǔ)言,比如Sass、LESS和Stylus等。這些處理器語(yǔ)言引入了一...
摘要:若自定義元素標(biāo)簽名稱不可用則摒棄。總之,自定義元素讓開(kāi)發(fā)者的代碼更易理解和維護(hù),并分割為小型,可復(fù)用及可封裝的模塊。被稱為自定義元素接口,雖然現(xiàn)在仍然可用,但是已經(jīng)被棄用并被認(rèn)為是糟糕的實(shí)現(xiàn)。 原文請(qǐng)查閱這里,略有刪減,本文采用知識(shí)共享署名 4.0 國(guó)際許可協(xié)議共享,BY Troland。 這是 JavaScript 工作原理第十九章。 概述 在 前述文章中,我們介紹了 Shadow ...
閱讀 4118·2021-09-24 10:24
閱讀 1439·2021-09-22 16:01
閱讀 2752·2021-09-06 15:02
閱讀 1051·2019-08-30 13:01
閱讀 1034·2019-08-30 10:52
閱讀 656·2019-08-29 16:36
閱讀 2266·2019-08-29 12:51
閱讀 2375·2019-08-28 18:29