手机卫士学习07-自定义组合控件实现配置列表效果

要实现的效果如下图:



使用自定义组合控件实现,大大提高了复用性,我们可以接二连三的添加设置信息了。


1 设置好界面布局文件。

2 设置自定义组合控件,继承布局,实现三构造方法,写个initView将布局文件转成View,在三构造函数调用这个initView方法

3 在其他布局文件可以开始使用自定义控件了。


细节:

设置好的CheckBox boolean存储到.xml文件中,当应用开启自动加载信息,设置配置界面。


1 设置自定义布局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="65dip" >

    <TextView
        android:id="@+id/tv_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dip"
        android:layout_marginTop="10dip"
        android:text="是否开启自动更新"
        android:textColor="#000000"
        android:textSize="20dip" />

    <TextView
        android:id="@+id/tv_msg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/tv_title"
        android:layout_marginLeft="10dip"
        android:text="自动更新已关闭"
        android:textColor="#88000000"
        android:textSize="18dip" />

    <CheckBox
        android:id="@+id/cb_status"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:clickable="false" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="0.2dip"
        android:layout_alignParentBottom="true"
        android:layout_marginLeft="5dip"
        android:layout_marginRight="5dip"
        android:layout_marginTop="5dip"
        android:background="#88000000" />

</RelativeLayout>


2 继承布局,实现自定义控件,初始化布局和构造方法

package com.itheima.mobilesafe.ui;

import com.itheima.mobilesafe.R;

import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.CheckBox;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class SettingItemView extends RelativeLayout {
	
	private CheckBox cb_status;
	private TextView tv_msg;

	private void initView(Context context) {
		View view =View.inflate(context, R.layout.setting_item,this);
		cb_status =(CheckBox) view.findViewById(R.id.cb_status);
		tv_msg =(TextView) view.findViewById(R.id.tv_msg);
		
	}
	
	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);
	}

	public SettingItemView(Context context) {
		super(context);
		initView(context);
	}
	
	/**
	 * 获取CheckBox当前状态
	 * @return	返回状态
	 */
	public boolean isCheckBox(){
		return cb_status.isChecked();
	}
	
	/**
	 * 设置CheckBox状态
	 * @param checked	设置的值
	 */
	public void setCheckBox(boolean checked){
		cb_status.setChecked(checked);
	}
	
	/**
	 * 设置状态的消息信息
	 * @param text	设置的内容
	 */
	public void setStatusMessage(String text){
		tv_msg.setText(text);
	}
	
}

3 其他布局文件调用:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="55dip"
        android:background="#8866ff00"
        android:gravity="center"
        android:text="设置中心"
        android:textSize="25sp" />

    <com.itheima.mobilesafe.ui.SettingItemView
        android:id="@+id/siv_update"
        android:layout_width="match_parent"
        android:layout_height="65dip" />

</LinearLayout>



具体功能看源代码吧,下载:

http://yunpan.cn/cyMArirmgqAbZ  访问密码 ebe0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值