使用自定义初始化程序初始化自定义视图(附加数据)

时间:2017-07-09 21:24:11

标签: android android-layout

是否可以初始化自定义视图(扩展LinearLayout)并传递其他参数? 我想设置一个布尔值来显示或不显示某些信息。

现在我有这样的事情: customButton = findViewById(R.id.customButton); 在CustomButton类中有一个布尔变量shouldShowText,我想在初始化视图时由用户设置。 在我的自定义按钮(LinearLayout)中,有三个构造函数:Context,Context和AtributeSet以及Context,AttributeSet和int。我到处都在调用我的init,但我不知道如何传递额外的数据。

1 个答案:

答案 0 :(得分:1)

您可以在xml中添加自定义布局,例如

<?xml version="1.0" encoding="utf-8"?>
<com.example.CustomLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:id="@+id/customButton"
    android:layout_height="match_parent"
    >

</com.example.CustomLayout>

在Java代码中,您可以这样调用,

CustomLayout customButton = (CustomLayout)findViewById(R.id.customButton);
// and you can call your method like this.
customButton.shouldShowText([your boolean]);

编辑: 您的自定义类

public class CustomButton extends LinearLayout  {
     public void shouldShowText(boolean showText) {
         // Do your action here
     }
}