Android开发中,自定义控件,就是完全后台java中定义属性,不通过attrs来定义,怎么做……

Android开发中,自定义控件,就是完全后台java中定义属性,不通过attrs来定义,怎么做……之前做的都是通过attrs中定义的,现在需要纯后台java中定义,怎么做……
请教……

还是一样的作法啊。你在类里面定义一些属性就好,在构造函数里面不用通过attrs来解析就行了。追问

没有在类里定义过属性,都是在attrs中定义的,有没有相关在类中定义的相关代码,
谢了,这个我不是很会……

追答public class MyTextView extends TextView {
//假设自定义一个myAttr用来代替setText
private String myAttr;
public MyTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
init(context);
}

public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
init(context);
}

public MyTextView(Context context) {
super(context);
// TODO Auto-generated constructor stub
init(context);
}

private void init(Context context) {
// TODO Auto-generated method stub
setText(myAttr);
}

public String getMyAttr() {
return myAttr;
}

public void setMyAttr(String myAttr) {
this.myAttr = myAttr;
setText(myAttr);
}
}

追问

你写的这个属性,应该只能在java文件中使用他,不能再layout的xml中使用啊……

追答

不是你说要在纯java代码中用吗……要在xml中用,必须加上要在attrs.xml里面声明。

追问

恩,这个我知道,可能你没有听明白我说的,我的意思是说,在纯java中定义属性,不在attrs.xml中声明,但是用的时候可以在xml中,这种属性,怎么定义啊,我实在这个意思的!
不过还是谢谢你!

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-03-28
欲渡黄河冰塞川。。将登太行雪满山。。

如何在 Android 应用程序中使用自定义主题
事实上,它也可以创建自定义属性在res\/values\/attr.xml文件。现在有趣的事情来了。我们的主题Theme.MyApp不仅可以通过AndroidManifest.xml的设置应用到Activity上,它也可以在运行时在代码中设置。你将不得不重新启动当前Activity(或使用ContextWrapper应用UI的主题部分),但它使主题更加动态。final Resources...

使用androidstudio与eclipse开发android有什么区别
1、最后结果是一样的 2、只能说所用的工具不同,在使用的习惯上,不同工具的功能所在位置都会有所不同,以及一些其他细小细节方面上的不同 Android Studio 是一个Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。Eclipse 是一个开放...

如何为标准控件添加自定义属性
attrs)设置xml文件中使用到的自定义属性。第二步需要声明自定义属性控制是否禁止输入表情,同时为了方便该控件在使用时的xml布局中配置该属性,要先在res\/values\/styles.xml中自定义属性名称。自定义属性的styleable名称必须是和自定义控件的类名保持一致的,在这个样式下可以添加任意的自定义属性,如下代码...

android ScrollVIew中嵌套GridView,如何显示GridView
1.GridView常用的XML属性 属性名称描述 android:columnWidth 设置列的宽度。android:gravity 设置此组件中的内容在组件中的位置。可选的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical可以多选,用“|”分开。android:horizonta...

求助android开发中 如果两个控件的id相同 会怎样
相同文件下如果控件id相同是不允许的,eclipse会报错的,如果不是同在一个布局文件中的话就可以,findviewbyid ()找的那个id是你前面用setContentView(R.layout.*)中的xml文件中的id。

Android 自定义ViewPager禁止左右滚动
在Android开发中,自定义一个禁止左右滚动的ViewPager,能更好地满足特定应用的界面需求。通过替换默认的androidx.viewpager.widget.ViewPager组件,我们可以实现这一功能。首先,在布局文件中,将默认的ViewPager组件替换为自定义的CustomViewPager。代码如下:xml <com.hui.shopping.custom.CustomViewPager an...

Android 怎么实现支持所有View的通用的下拉刷新控件
为了应对各式各样的下拉刷新设计,我们应该提供设置自定义的Header,开发者可以通过实现接口从而自定义自己的header。而且header可以有两种显示方式,一种是只下拉header,另外一种则是header和target一起下拉。二、着手实现代码 2.1 定义Header的接口,创建自定义Layout \/ Created by AItsuki on 2016\/6\/13....

Android编程中chronometer在后台怎么才能定时暂停
我能想到的解决方式就是把Chronometer的代码拿过来,自己写一个类,粘贴上Chronometer里面的代码,然后再修改它的onWindowVisibilityChanged()方法,然后就可以用自己的这个计时器了。我测试过了,实现了最后附上我自己的MyChronometer类代码,你可以复制一下。。在布局文件里直接用这个控件package com.lily.demo_listview;\/* ...

android开发中如何实现手写输入的记事本
1. 自定义两个View,一个是TouchView,用于在上面画图,另一个是EditText,用于将手写的字显示在其中,并且,要将两个自定义View通过FrameLayout帧式布局重叠在起,以实现全屏手写的功能。 2在TouchView中实现写字,并截取画布中的字以Bitmap保存。 3. 设置定时器,利用handle更新界面。 下面是实现的细节: 1. 手写的界面...

Android如何自定义LinearLayout
1、自定义xml布局,然后加载布局,自定义一个View继承LinearLayout 2、在自定义控件中声明它的所有子元素,然后在Layout文件中像使用LinearLayout一样去进行布局。第二种比较烦 ,它需要在Layout文件中定义好子元素之后,要在代码 onFinishInflate() 进行匹配子元素。我就说说加载布局文件的方法吧。首先:定义...

相似回答