Android开发自定义控件全解
程序员文章站
2024-02-03 12:07:40
android开发自定义控件全解,安卓自定义控件:包含linearlayout、relativelayout、gridview、button等。
本文以linearlayout为...
android开发自定义控件全解,安卓自定义控件:包含linearlayout、relativelayout、gridview、button等。
本文以linearlayout为例
首先要有一个自定义xml布局文件
我们这里存储下面的代码为ui_linearlayout.xml文件
自定义控件继承自linearlayout
在自定义控件的绑定布局文件,并进行相应的ui初始化,添加自定义的属性和方法。
//自定义组合控件 public class ui_linearlayout extends linearlayout{ private view view; private layoutinflater layoutinflater; private edittext edittext; private button clearbutton; public ui_linearlayout(context context) { //自己定义构造函数,可以传递想要的数据进来 super(context); //使用布局资源填充视图 string infservice = context.layout_inflater_service; layoutinflater = (layoutinflater)getcontext().getsystemservice(infservice); //layoutinflater=layoutinflater.from(context); view = layoutinflater.inflate(r.layout.ui_linearlayout, this, true); //获取当前控件的引用,使用this也行 //获取对子控件的引用 edittext = (edittext)findviewbyid(r.id.ui_linearlayout_edittext); clearbutton = (button)findviewbyid(r.id.ui_linearlayout_clearbutton); //也可以使用代码自己添加 } //组合控件的自定义函数 private void fun1(string str,drawable images,onclicklistener onclick){ edittext.settext(str); clearbutton.setbackgrounddrawable(images); clearbutton.setonclicklistener(onclick); }
在activity中添加自定义控件
relativelayout relativelayout = (relativelayout)findviewbyid(r.id.activity1_relativelayout1); ui_linearlayout myview = new ui_linearlayout(this); relativelayout .addview(myview); //myview.fun1(str, images, onclick); //调用内部函数