• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android 手机卫士--自定义属性,android卫士

Android 手机卫士--自定义属性,android卫士

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android 自定义属性,js获取自定义属性值,自定义属性,我的世界自定义属性,solidworks自定义属性等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android 手机卫士--自定义属性,android卫士


在前面的文章中,已经实现了“设置中心”第一栏的功能以及布局

本文地址:http://www.cnblogs.com/wuyudong/p/5936016.html,转载请注明出处。

自定义属性声明

接下来实现其他栏的布局和功能,由于它们之间的功能和布局类似,只是属性名称不同。所以本文在自定义控件的基础上实现自定义属性

首先参考标准控件的源码,这里选择TextView

源码路径为:D:\adt-bundle-windows-x86_64_20140101\sdk\platforms\android-18\data\res\values

打开本文件夹下的attrs.xml文件,找到下面的代码:

    <declare-styleable name="TextView">
        <!-- Determines the minimum type that getText() will return.
             The default is "normal".
             Note that EditText and LogTextBox always return Editable,
             even if you specify something less powerful here. -->
        <attr name="bufferType">
            <!-- Can return any CharSequence, possibly a
             Spanned one if the source text was Spanned. -->
            <enum name="normal" value="0" />
            <!-- Can only return Spannable. -->
            <enum name="spannable" value="1" />
            <!-- Can only return Spannable and Editable. -->
            <enum name="editable" value="2" />
        </attr>
        <!-- Text to display. -->
        <attr name="text" format="string" localization="suggested" />
        <!-- Hint text to display when the text is empty. -->
        <attr name="hint" format="string" />

于是我们也可以模仿关键节点,写出自定义属性,工程res\values文件夹下新建attrs.xml文件,添加代码如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="com.wuyudong.mobilesafe.view.SettingItemView">
        <attr name="destitle" format="string"/>
        <attr name="desoff" format="string"/>
        <attr name="deson" format="string"/>
    </declare-styleable>
</resources>

构造方法中获取自定义属性值

接下来定义命名空间,也是参考android标准来写

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
……

mobilesafe替换掉原有android

com.wuyudong.mobilesafe必须这样编写,替换掉了android,代表当前应用自定义属性
xmlns:mobilesafe="http://schemas.android.com/apk/res/com.wuyudong.mobilesafe"

修改后的代码如下:

    <com.wuyudong.mobilesafe.view.SettingItemView
        xmlns:mobilesafe="http://schemas.android.com/apk/res/com.wuyudong.mobilesafe"
        android:id="@+id/siv_update"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        mobilesafe:destitle="自动更新设置"
        mobilesafe:desoff="自动更新已关闭"
        mobilesafe:deson="自动更新已开启" >
    </com.wuyudong.mobilesafe.view.SettingItemView>

自定义属性值已经搞定,现在是SettingItemView类如何获取这些值?

在SettingItemView类的构造函数中调用initAttrs函数,然后通过initAttrs函数实现属性的返回。先通过一些小的实践来熟悉相关的API

   /**
     * 返回属性集合中自定义属性的属性值
     * @param attrs  构造方法中维护好的属性集合
     */
    private void initAttrs(AttributeSet attrs) {
        //获取属性的总个数
        Log.i(tag,"attrs.getAttributeCount(): " + attrs.getAttributeCount());
        //获取属性名称以及属性值
        for (int i = 0; i < attrs.getAttributeCount(); i++) {
            Log.i(tag, "name = " + attrs.getAttributeName(i));
            Log.i(tag, "value = " + attrs.getAttributeValue(i));
            Log.i(tag, "==================分割线======================");
        }
    }

运行项目后在Logcat中打印下面的日志信息:

解释一下上面的部分代码:

value = @2131427413对应的十六进制值为:7F0B0055,其实就是对应的R文件中

public static final int siv_update=0x7f0b0055;

其他的都很简单

接着我们使用其他的API来进行获取属性的值

private static final String NAMESPACE = "http://schemas.android.com/apk/res/com.wuyudong.mobilesafe";
...........

 /**
     * 返回属性集合中自定义属性的属性值
     * @param attrs  构造方法中维护好的属性集合
     */
    private void initAttrs(AttributeSet attrs) {
     /*   //获取属性的总个数
        Log.i(tag,"attrs.getAttributeCount(): "+attrs.getAttributeCount());
        //获取属性名称以及属性值
        for (int i = 0; i < attrs.getAttributeCount(); i++) {
            Log.i(tag, "name = " + attrs.getAttributeName(i));
            Log.i(tag, "value = " + attrs.getAttributeValue(i));
            Log.i(tag, "==================分割线======================");
        }*/
        String destitle = attrs.getAttributeValue(NAMESPACE, "destitle");
        String desoff = attrs.getAttributeValue(NAMESPACE, "desoff");
        String deson = attrs.getAttributeValue(NAMESPACE, "deson");
        Log.i(tag, destitle);
        Log.i(tag, desoff);
        Log.i(tag, deson);
    }

运行项目后在Logcat中打印下面的日志信息:

说明已经成功获取所设置的属性值

这样就可以复用代码实现第二栏的电话归属地的布局

    <com.wuyudong.mobilesafe.view.SettingItemView
        xmlns:m



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android 手机卫士--自定义属性,android卫士

相关文章

  • 2017-05-26Android开发:控件之WebView
  • 2017-05-26硅谷社交3--登录页面,硅谷社交3--
  • 2017-05-26Oracle监听与tnsnames文件标准配置解决监听无法连接问题
  • 2017-05-26Android项目从Eclipse增加支持Android Studio
  • 2017-05-26ORA-16038/ORA-00742: Log read detects lost write in thread
  • 2017-05-26android 动画详解(二)
  • 2017-05-26再谈Android AsyncTask的优缺点,androidasynctask
  • 2018-01-28揭开AssetBundle庐山真面目(二)
  • 2017-05-26Android5.0开发范例大全 读书笔记(四),android5.0范例
  • 2017-05-26Android 7.0(牛轧糖)新特性,android牛轧糖

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • redis配置文件参数解释说明
    • Android中Window添加View的底层原理
    • A DB2 Performance Tuning Roadmap --LOG INTRODUCTION
    • Android中使用Notification实现宽视图通知栏(Notification示例二),notification大视图
    • Mobizen免帐号版,Mobizen帐号版
    • Android消息机制
    • 手机安全卫士——软件管理-用户程序和系统程序,安全卫士系统程序
    • [android] 手机卫士保存密码时进行md5加密,androidmd5
    • Linux目录与文件权限的意义
    • ViewPager与PagerAdapter,viewpager

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有