[android] 手机卫士自定义组合控件

[android] 手机卫士自定义组合控件,第1张

概述设置中心 新建SettingActivity 设置GridView条目的点击事件 调用GridView对象的setOnItemClickListenner()方法,参数:OnItemClickList

设置中心

新建SettingActivity

 

设置GrIDVIEw条目的点击事件

调用GrIDVIEw对象的setonItemClickListenner()方法,参数:OnItemClickListenner对象

匿名内部类实现,重写onItemClick()方法,传递进来的参数:

parentGrIDVIEw对象,vIEw是当前VIEw对象,position是当前索引

switch判断,当时设置中心的索引时,跳转到设置中心

 

设置中心界面

使用相对布局,右边的<CheckBox/> 位于父控件的右边,垂直居中

设置CheckBox 禁止点击,androID:clickable=”false”

设置垂直居中,androID:layout_centerVeritical=”true”

画一条黑线

添加<VIEw/>控件,高度0.2dp,背景色黑色,左右边距5dp,位于父控件底部

 

自定义组合VIEw

为了重复利用,我们把这些放到一个组合的布局文件里面去

ui包里,新建一个类SetingItemVIEw继承系统的relativeLayout

实现该类的三个构造方法,在这三个方法里面初始化VIEw对象

调用VIEw.inflate()方法,把布局文件加载到SetingItemVIEw里面,参数:上下文,资源文件,当前对象this

实现点击组合控件的任何地方,CheckBox控件跟着展示不同状态

获取到三个控件对象,TextVIEw CheckBox

定义方法isChecked(),检验组合控件是否选中,调用CheckBox对象的isChecked()方法,返回结果

定义方法setChecked(),设置组合控件的选中状态,调用CheckBox对象的setChecked(boolean)方法,参数:布尔值

定义方法setDesc(),设置组合控件描述信息,调用TextVIEw对象的setText()方法,参数:文本

 

 

设置关闭自动更新

获取SetingItemVIEw控件对象

调用SetingItemVIEw对象的setonClickListenner()方法,设置点击事件,在重写的onClick方法里面

调用SetingItemVIEw对象的isChecked()方法,判断是否选中

调用SetingItemVIEw对象的setChecked()方法,设置状态,参数:布尔值

SettingActivity.java

package com.qingguow.mobilesafe;import androID.app.Activity; androID.os.Bundle; androID.vIEw.VIEw; androID.vIEw.VIEw.OnClickListener; com.qingguow.mobilesafe.ui.SettingItemVIEw;public class SettingActivity extends Activity {    private SettingItemVIEw siv_item;    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_setting);        siv_item=(SettingItemVIEw) findVIEwByID(R.ID.siv_item);        //自动更新的点击事件        siv_item.setonClickListener(new OnClickListener() {            @OverrIDe             onClick(VIEw arg0) {                if(siv_item.isChecked()){                    设置不选中                    siv_item.setChecked(false);                    siv_item.setDesc("自动更新已经关闭");                }else{                    设置选中                    siv_item.setChecked(true);                    siv_item.setDesc("自动更新已经开启");                }            }        });    }}

SettingItemVIEw.java

 com.qingguow.mobilesafe.ui; androID.content.Context; androID.util.AttributeSet; androID.Widget.CheckBox; androID.Widget.relativeLayout; androID.Widget.TextVIEw; com.qingguow.mobilesafe.R;class SettingItemVIEw  relativeLayout {     TextVIEw tv_Title;     TextVIEw tv_desc;     CheckBox cb_status;    /**     * 初始化VIEw对象     * @param context     */    private  initVIEw(Context context) {        VIEw.inflate(context,R.layout.setting_item_vIEw,this);        cb_status=(CheckBox) .findVIEwByID(R.ID.cb_status);        tv_desc=(TextVIEw) .findVIEwByID(R.ID.tv_desc);    }         * 判断是否选中     * @return     boolean isChecked(){        return cb_status.isChecked();    }         * 设置是否选中     *  status     voID setChecked( status){        cb_status.setChecked(status);    }         * 设置显示文本     *  text      setDesc(String text){        tv_desc.setText(text);    }    public SettingItemVIEw(Context context,AttributeSet attrs,int defStyle) {        (context,attrs,defStyle);        initVIEw(context);    }    public SettingItemVIEw(Context context,AttributeSet attrs) {         SettingItemVIEw(Context context) {        (context);        initVIEw(context);    }}

setting_item_vIEw.xml

<?xml version="1.0" enCoding="utf-8"?><relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:layout_wIDth="match_parent"    androID:layout_height="70dp" >    TextVIEw        androID:ID="@+ID/tv_Title"        androID:layout_wIDth="wrap_content"        androID:layout_height        androID:layout_marginleft="10dp"        androID:layout_margintop        androID:text="设置是否自动更新"        androID:textcolor="#333333"        androID:textSize="20sp" />    ="@+ID/tv_desc"        androID:layout_below="@ID/tv_Title"="5dp"="自动更新已经关闭"="#666666"="16sp" CheckBox        ="@+ID/cb_status"        androID:layout_alignParentRight="true"        androID:layout_centerVertical        androID:clickable="false" VIEw        androID:layout_wIDth="0.2dp"        androID:layout_alignParentBottom        androID:layout_marginRight        androID:background="#cccccc" /></relativeLayout>

 

总结

以上是内存溢出为你收集整理的[android] 手机卫士自定义组合控件全部内容,希望文章能够帮你解决[android] 手机卫士自定义组合控件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1121151.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存