任何人请指导我,
如何在xml和java文件中创建自定义组件
从xml传递属性(我有点完成)
如何从新的customClass()动态传递属性 - 构造函数方法。 - 我不知道如何实现这一点
对于Eg:我创建了一个自定义组件,其中两个textview作为单个组件。在xml中,我通过xml属性创建了两个组件。现在我想用java代码创建两个新组件 通过调用我的customClass.java的构造函数我不知道如何从java代码动态创建一个新组件以及如何在视图中显示(说一个相对布局)请帮我提供任何链接或博客。
我花了一周的时间,但我没有得到任何解决方案,请帮助我
答案 0 :(得分:1)
非常简单:
在你的布局xml文件中只需输入以下几行xml代码:
<com.example.project.MyComponent
android:id="@+id/myid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
现在,编写一个名为组件的类:
public class MyComponent extends RelativeLayout {
public MyComponent(Context context, AttributeSet attr) {
super(context,attr);
}
@Override
public void onFinishInflate() {
// this is the right point to do some things with View objects,
// as example childs of THIS View object
}
}
记住构造函数:LayoutInflater需要这个构造函数 找到你的组件。而且,不要忘记在需要时调用super(...)。
答案 1 :(得分:0)
您可以通过在其参数中调用带有上下文的构造函数,然后使用getter setter设置属性来完成此操作。您可以在Android tech point
找到一个好的教程MyComponent mycomponent = new MyComponent(context);
myComponent.setFirstTextView("text1");
myComponent.setSecondTextView("text2");
最后
layout.addView(myComponent);