android attributeset,如何在android中以编程方式创建时传递AttributeSet

android attributeset,如何在android中以编程方式创建时传递AttributeSet当您的视图从 xml 中膨胀时 将使用具有 Context 和 AttributeSet 的构造函数 您不应该使用它来创建对象 您应该使用带有 Context 作为参数的构造函数 AttributeSet 是接口 您可以创建 then 的实例并实现所有方法 如下所示 AttributeSet newAttribute Overridepubl

当您的视图从xml中膨胀时,将使用具有Context和AttributeSet的构造函数。您不应该使用它来创建对象。您应该使用带有Context作为参数的构造函数。

AttributeSet是接口,您可以创建then的实例并实现所有方法,如下所示:

AttributeSet attrs = new AttributeSet(){

@Override

public int getAttributeCount() {

return 0;

}

@Override

public String getAttributeName(int index) {

return null;

}

@Override

public String getAttributeValue(int index) {

return null;

}

@Override

public String getAttributeValue(String namespace, String name) {

return null;

}

@Override

public String getPositionDescription() {

return null;

}

@Override

public int getAttributeNameResource(int index) {

return 0;

}

@Override

public int getAttributeListValue(String namespace, String attribute, String[] options, int defaultValue) {

return 0;

}

@Override

public boolean getAttributeBooleanValue(String namespace, String attribute, boolean defaultValue) {

return false;

}

@Override

public int getAttributeResourceValue(String namespace, String attribute, int defaultValue) {

return 0;

}

@Override

public int getAttributeIntValue(String namespace, String attribute, int defaultValue) {

return 0;

}

@Override

public int getAttributeUnsignedIntValue(String namespace, String attribute, int defaultValue) {

return 0;

}

@Override

public float getAttributeFloatValue(String namespace, String attribute, float defaultValue) {

return 0;

}

@Override

public int getAttributeListValue(int index, String[] options, int defaultValue) {

return 0;

}

@Override

public boolean getAttributeBooleanValue(int index, boolean defaultValue) {

return false;

}

@Override

public int getAttributeResourceValue(int index, int defaultValue) {

return 0;

}

@Override

public int getAttributeIntValue(int index, int defaultValue) {

return 0;

}

@Override

public int getAttributeUnsignedIntValue(int index, int defaultValue) {

return 0;

}

@Override

public float getAttributeFloatValue(int index, float defaultValue) {

return 0;

}

@Override

public String getIdAttribute() {

return null;

}

@Override

public String getClassAttribute() {

return null;

}

@Override

public int getIdAttributeResourceValue(int defaultValue) {

return 0;

}

@Override

public int getStyleAttribute() {

return 0;

}

};

并使用它

TextView textView = new TextView(this, attrs);

但这不是正确的方法。

您应该使用视图中的方法来设置视图的属性。

例如,设置LayoutParams是两种方法

首先通过方法setLayoutParams()

view.setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));

将视图添加到ViewGroup时的第二个;

viewGroup.addView(yourView, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));

如果您有或者想要将视图添加到例如RelativeLayout,则应使用与此ViewGroup相关的LayoutParams。它是RelativeLayout.LayoutParams

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222311.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午4:04
下一篇 2026年3月17日 下午4:05


相关推荐

  • 网络安全攻击防御体系

    网络安全攻击防御体系nbsp nbsp

    2025年11月13日
    5
  • 一个指针占几个字节?原理是什么呢?

    一个指针占几个字节?原理是什么呢?一个指针占几个字节的问题,感觉会C语言的同学都知道。但是在面试过程中,面了几个同学,不是答忘记了,就是两个、四个的瞎蒙。。。那么,一个指针到底占几个字节呢?其实,这个问题很简单,稍微上网一搜,你就知道:一个指针在64位的计算机上,占8个字节;一个指针在32位的计算机上,占4个字节。这么简单的问题,为什么面试官愿意问呢?其实这个问题不是在考你的记忆能力,是在考察你的计算机基础能力。就比如,…

    2022年6月26日
    35
  • 什么是网站的灵魂_测试性能网站

    什么是网站的灵魂_测试性能网站前言在前一篇随笔《大型网站系统架构的演化》中,介绍了大型网站的演化过程,期间穿插了一些技术和手段,我们可以从中看出一个大型网站的轮廓,但想要掌握设计开发维护大型网站的技术,需要我们一步一步去研究实践

    2022年8月4日
    8
  • jvm垃圾回收详解_java 垃圾回收器

    jvm垃圾回收详解_java 垃圾回收器JVM垃圾回收1.概述JVM会自动帮程序员进行垃圾回收,并不需要程序员手动的进行垃圾回收(C++等语言需要自己手动回收垃圾),了解JVM的垃圾回收,可以帮程序员写出占用内存更小、更高效的程序。1.1什么是垃圾?垃圾是指运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。1.2什么区域需要进行垃圾回收JVM的内存结构包括五大区域:程序计数器、虚拟机栈、本地方法栈、堆区、方法区。其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生、随线程而灭,因此这几个区域的内存分配和回

    2025年10月31日
    5
  • spi协议详解_一文看懂财务三张表

    spi协议详解_一文看懂财务三张表文章目录SPI协议简介4线还是3线?4种工作模式多种传输速率SPI协议的基本时序SPI协议的升级版FPGA实现SPI协议SPI和IIC的对比总结SPI协议简介板卡内不同芯片间通讯最常用的三种串行协议:UART、I2C、SPI,之前写过串口协议及其FPGA实现,今天我们来介绍SPI协议,SPI是SerialPerripheralInterface的简称,是由Motorola公司推出的一种高速、全双工的总线协议。与IIC类似,SPI也是采用主从方式工作,主机通常为FPGA、MCU或DSP等可编程控制

    2022年10月15日
    3
  • js对象和jquery对象的区别

    js对象和jquery对象的区别

    2021年10月18日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号