是否可以初始化自定义视图(扩展LinearLayout)并传递其他参数? 我想设置一个布尔值来显示或不显示某些信息。
现在我有这样的事情:
customButton = findViewById(R.id.customButton);
在CustomButton类中有一个布尔变量shouldShowText
,我想在初始化视图时由用户设置。
在我的自定义按钮(LinearLayout)中,有三个构造函数:Context,Context和AtributeSet以及Context,AttributeSet和int。我到处都在调用我的init,但我不知道如何传递额外的数据。
答案 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
}
}