Android:如何创建自定义组件

Android:如何创建自定义组件,android,custom-component,Android,Custom Component,任何人请引导我 如何在xml和java文件中创建自定义组件 从xml传递属性(我已经完成了) 如何从新的customClass()构造函数方法动态传递属性。-我不知道如何实现这一点 例如:我创建了一个自定义组件,其中两个textview作为单个组件。在xml中,我通过xml属性创建了两个组件。现在我想用java代码创建两个新组件 通过调用customClass.java的构造函数,我不知道如何从java代码动态创建新组件,以及如何在视图中显示(比如说相对布局),请帮助我提供任何链接或博客 我为此

任何人请引导我

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

  • 从xml传递属性(我已经完成了)

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

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

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

    非常简单:

    在布局xml文件中,只需输入以下几行xml代码:

    <com.example.project.MyComponent
      android:id="@+id/myid"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
    />
    
    记住构造函数:LayoutFlater需要这个构造函数来 找到您的组件。而且,当需要时,不要忘记呼叫super(…)。

    这非常简单:

    在布局xml文件中,只需输入以下几行xml代码:

    <com.example.project.MyComponent
      android:id="@+id/myid"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
    />
    
    记住构造函数:LayoutFlater需要这个构造函数来
    找到您的组件。而且,在需要时不要忘记调用super(…)。

    您可以通过在其参数中使用上下文调用构造函数,然后使用getter setters设置属性来实现这一点。你可以在网站上找到一个很好的教程

    最后

    layout.addView(myComponent);
    

    您可以通过在其参数中使用上下文调用构造函数,然后使用getter setters设置属性来实现这一点。你可以在网站上找到一个很好的教程

    最后

    layout.addView(myComponent);
    

    我不确定您的自定义标记是否有效,但我知道这是可行的:我的示例扩展了一个相对布局-您不必用ImageView、TextView或其他子级填充它;)@Andreas Bf-感谢您的回复。public MyComponent(上下文上下文,AttributeSet attr)当您从xml文件传递attr时,将调用此构造函数。这部分我已经完成了。我想从java代码(而不是从xml布局)创建组件。像调用构造函数public MyComponent(Context Context){…}一样,我必须从java代码中传递值/attr。我不确定您的自定义标记是否有效,但我知道这是可行的:我的示例扩展了一个相对布局-您不必用ImageView、TextView或其他子级填充它;)@Andreas Bf-感谢您的回复。public MyComponent(上下文上下文,AttributeSet attr)当您从xml文件传递attr时,将调用此构造函数。这部分我已经完成了。我想从java代码(而不是从xml布局)创建组件。像调用构造函数publicMyComponent(Context){…}一样,我必须从java代码中传递值/attr。