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语言混淆了。只需使用它而不使用分号:)