如何为标准控件添加自定义属性

如题所述

第1个回答  2019-04-25
自定义控件中自定义属性的定义和使用方式。
  第一步当然是自定义类EditTextNoEmoji继承EditText,同时重写三个构造方法。这里需要注意的是,三个构造方法中必须分别实现父类对应的构造方法,就是三个super();而不能出现调用当前类的不同参数的另一个构造方法的形式,就是不能出现this()。否则的话,这个控件在实际使用时是获得不到焦点的,似乎是由于EditText继承TextView的原因,具体原因待查。
  谈谈这三个构造方法的区别,一参的构造EditTextNoEmoji(Context
context),是在使用的java文件中动态生成时调用,两参的构造EditTextNoEmoji(Context
context,
AttributeSet
attrs),是在使用的xml文件中静态生成时调用,三参的构造基本不会使用,暂且不讨论。而两参构造中的第二个参数attrs,正是我们要自定义的属性,所以在该方法中调用setAttrs(context,
attrs)设置xml文件中使用到的自定义属性。
第二步需要声明自定义属性控制是否禁止输入表情,同时为了方便该控件在使用时的xml布局中配置该属性,要先在res/values/styles.xml中自定义属性名称。自定义属性的styleable名称必须是和自定义控件的类名保持一致的,在这个样式下可以添加任意的自定义属性,如下代码,添加了一个boolean类型的属性,名称为canInputEmoji。另外可以添加的属性类型包括
color,boolean,dimension,enum,flag,float,fraction,integer,reference,string等十种。

如何为标准控件添加自定义属性
自定义属性的styleable名称必须是和自定义控件的类名保持一致的,在这个样式下可以添加任意的自定义属性,如下代码,添加了一个boolean类型的属性,名称为canInputEmoji。另外可以添加的属性类型包括 color,boolean,dimension,enum,flag,float,fraction,integer,reference,string等十种。

c#自制控件如何添加的新的属性!
在自定义控件的类中添加两个成员 一个私有一个公开,把公开的set get 与私有成员关连,在set和get过程中还可以处理额外内容,如改变其它值执行其它代码等。如下代码所示,其中CategoryAttribute为属性发组信息,DescriptionAttribute为说明,DefaultValue为默认值。private string _Caption = "曲线图";[Categor...

设置自定义ASP.NET服务器控件TagPrefix的几种方法
每个页面也都要添加<%Register%指令,这样只是提供了统一的tagPrefix,实质上还是第二种方法方法四、在控件项目中添加属性文件"Assembly.cs"中添加如下代码来自定义控件的前缀:usingSystem.Reflection;usingSystem.Runtime.CompilerServices;usingSystem.Runtime.InteropServices;usingSystem.Web.UI;[assembly:TagPre...

Solidworks自定义属性的作用和添加方法、属性模板如何制作
自定义属性的添加方式多种多样,既可以使用文件属性直接创建,如图4所示,通过一系列步骤,轻松定义所需属性。(文件属性的便捷添加,一步到位)图4:文件属性的定制化设置,操作直观且易于上手。(定制属性,轻松快捷)当然,我们还可以利用预设的模板,如图5所示的属性标签编制程序,更高效地生成模板。(模...

如何在android style文件中使用自定义属性
在android studio中在style文件中使用自定义属性1、 首先在android studio中点击res-->values然后点击style 2、 点击之后发现里面已经有自定好的代码了,这些代码都是提供给系统调用的 3、要定义style需要为style创建一个名字和属性,如下图 4、最后在控件中使用如下代码即可完成style的全部步骤 ...

如何在Windows中自定义清单方块样式LBS_STANDARD并设置其大小?_百度...
在Windows中,一种常见的控件样式用于表格列表,称为LBS_STANDARD,它集合了常见的列表属性。这个样式定义为:LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER这些属性组合确保了列表具有通知功能、排序功能,支持垂直滚动,并带有边框。尽管如此,你也可以通过添加WS_SIZEBOX和WS_CAPTION样式,来定制列表...

如何在delphi程序中为某一控件添加自定义事件
像定义属性一样,类型为TNotifyEvent。如 private FMyEvent: TNotifyEvent;public MyEvent: TNotifyEvent read FMyEvent write FMyEvent;在你需要触发事件的地方调用以下代码:if Assinged(FMyEvent)FMyEvent(Self);

android 自定义控件 属性怎么用
自定义属性设置 public class lei extends RelativeLayout { private TextView tv1 public lei(Context context) { super(context);} public lei(Context context, AttributeSet attrs) { super(context, attrs);LayoutInflater.from(context).inflate(R.layout.item,this);tv1 = findViewById(R.id.tv1...

...ListView一样使用RecyclerView - 自定义控件属性
divider属性通过getDrawable方法获取Drawable对象,然后调用setDivider方法设置分隔线。为了使RecyclerView具备类似功能,我们直接复制并粘贴ListView的自定义属性声明至attrs.xml中。然而,在进行编译时,发现与系统控件同名属性冲突。为解决此问题,我们为自定义属性前加上前缀"android:"并去除"format",再次编译时...

C#自定义控件中如何动态添加属性
假定你的属性控件是object,并且已初始化好.if(object is TextBox){ this.controls.Add(object);} else { object.Size = new Size(50,100);object.location = new Point(0, 0);}

相似回答
大家正在搜