Android:如何创建自定义组件

时间:2012-01-24 11:19:07

标签: android custom-component

任何人请指导我,

如何在xml和java文件中创建自定义组件

  1. 从xml传递属性(我有点完成)

  2. 如何从新的customClass()动态传递属性 - 构造函数方法。 - 我不知道如何实现这一点

  3. 对于Eg:我创建了一个自定义组件,其中两个textview作为单个组件。在xml中,我通过xml属性创建了两个组件。现在我想用java代码创建两个新组件 通过调用我的customClass.java的构造函数我不知道如何从java代码动态创建一个新组件以及如何在视图中显示(说一个相对布局)请帮我提供任何链接或博客。

    我花了一周的时间,但我没有得到任何解决方案,请帮助我

2 个答案:

答案 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);