Android Studio中的自定义组件

Android Studio中的自定义组件,android,custom-controls,Android,Custom Controls,我正在尝试创建一个由许多其他组件组成的自定义组件。我需要能够像TextView或EditText类型的组件一样使用它。我似乎在网上找不到任何关于如何做到这一点的教程,我甚至不确定该找什么。我需要做几个,但这里有一个例子: input_textbox.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android

我正在尝试创建一个由许多其他组件组成的自定义组件。我需要能够像
TextView
EditText
类型的组件一样使用它。我似乎在网上找不到任何关于如何做到这一点的教程,我甚至不确定该找什么。我需要做几个,但这里有一个例子:

input_textbox.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_margin="5dp"
    android:background="@drawable/bg_form_info"
    android:layout_width="wrap_content"
    android:layout_height="@dimen/form_info_height">

    <TextView
        android:id="@+id/label"
        android:hint="@string/label"
        android:textSize="@dimen/label_text_size"
        android:visibility="visible"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <EditText
        android:id="@+id/display"
        android:hint="@string/display"
        android:textSize="@dimen/form_info_text_size"
        android:layout_alignParentBottom="true"
        android:background="@android:color/transparent"
        android:paddingLeft="@dimen/input_horizontal_padding"
        android:paddingRight="@dimen/input_horizontal_padding"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <ImageButton
        android:id="@+id/error_icon"
        android:contentDescription="@string/error"
        android:src="@drawable/ic_error"
        android:background="@android:color/transparent"
        android:clickable="true"
        android:focusable="false"
        android:visibility="visible"
        android:paddingRight="@dimen/input_horizontal_padding"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_centerVertical="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</RelativeLayout>
...

<com.example.application.inputs.Textbox
    android:id="@+id/test_textbox"
    android:layout_below="@id/end_date_display"
    [HOW DO I ADD THE LABEL AND OTHER OPTIONS?]
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

...
活动\u main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_margin="5dp"
    android:background="@drawable/bg_form_info"
    android:layout_width="wrap_content"
    android:layout_height="@dimen/form_info_height">

    <TextView
        android:id="@+id/label"
        android:hint="@string/label"
        android:textSize="@dimen/label_text_size"
        android:visibility="visible"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <EditText
        android:id="@+id/display"
        android:hint="@string/display"
        android:textSize="@dimen/form_info_text_size"
        android:layout_alignParentBottom="true"
        android:background="@android:color/transparent"
        android:paddingLeft="@dimen/input_horizontal_padding"
        android:paddingRight="@dimen/input_horizontal_padding"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <ImageButton
        android:id="@+id/error_icon"
        android:contentDescription="@string/error"
        android:src="@drawable/ic_error"
        android:background="@android:color/transparent"
        android:clickable="true"
        android:focusable="false"
        android:visibility="visible"
        android:paddingRight="@dimen/input_horizontal_padding"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_centerVertical="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</RelativeLayout>
...

<com.example.application.inputs.Textbox
    android:id="@+id/test_textbox"
    android:layout_below="@id/end_date_display"
    [HOW DO I ADD THE LABEL AND OTHER OPTIONS?]
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

...
。。。
...

任何帮助都很好,甚至连Youtube视频的链接都比什么都没有好。

您可以在活动类上初始化自定义文本框,如

public TextBox mTextBox = new TextBox(label)
将其添加到父视图


如果要在xml中设置视图的标签

在自定义类中添加public方法,如

public void setTag(String input) {
   inputLabel.setText(input)
}
并根据代码设置标记

public textBoxReferred = findViewById(R.id.test_testbox)

textBoxReferred.setText("THE TAG")

为什么在
public void setTag(String:input){
@MakPo-Oh我把它和Kotlin语言混淆了。只需使用它而不使用分号:)