
自定义视图attrs:
<?xml version="1.0" enCoding="utf-8"?><resources> <declare-styleable name="IDNumber"> <attr name="firstname" format="integer"/> <attr name="lastname" format="integer"/> <attr name="address" format="integer"/> <attr name="birthDate" format="integer"/> </declare-styleable></resources>
我使用自定义视图的布局:
<?xml version="1.0" enCoding="utf-8"?><relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" xmlns:custom="http://schemas.androID.com/apk/res-auto" androID:layout_wIDth="match_parent" androID:layout_height="match_parent"> <EditText androID:ID="@+ID/display_name" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:inputType="text" androID:layout_centerHorizontal="true" androID:tag="name" androID:ems="10" /> <EditText androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:inputType="number" androID:ems="10" androID:ID="@+ID/ID_number" androID:layout_centerHorizontal="true" androID:layout_below="@ID/display_name"/> <ge.altasoft.custom_vIEws.IDNumber androID:ID="@+ID/custom_ID_number" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_centerHorizontal="true" androID:layout_below="@ID/ID_number" androID:paddingleft="35dip" custom:firstname="@ID/display_name"/></relativeLayout>
自定义视图类的构造函数,我想获取属性值:
public IDNumber (Context context,AttributeSet attrs) { super(context,attrs); initVIEws(); TypedArray a = context.obtainStyledAttributes(attrs,R.styleable.IDNumber); final int N = a.getIndexCount(); for(int i = 0; i < N; i++){ int attr = a.getIndex(i); switch(attr){ case R.styleable.IDNumber_firstname: int firstnameVIEwID = a.getInteger(attr,-1); break; } } a.recycle(); } 问题是int firstnameVIEwID = a.getInteger(attr,-1);只是0,而不是VIEw的ID.
custom:firstname =“@ ID / display_name”<<<这应该是错的,但我不知道它有什么问题.当我为自定义属性分配一些整数值时,它可以工作,但它不适用于ID-s. 感谢您在Advance中提供的帮助.
解决方法 更改您的定义< attr name =“firstname”format =“reference”/>在你的代码中使用int firstnameVIEwID = a.getResourceID(attr,-1);
希望这有帮助!
总结以上是内存溢出为你收集整理的具有自定义属性的Android自定义视图全部内容,希望文章能够帮你解决具有自定义属性的Android自定义视图所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)