我有一个UI组件,比如一个按钮,它存在于我的应用程序的多个视图中。我使用单例方法来跟踪按钮的状态。此按钮位于这些不同视图中的不同位置。现在,我只是通过执行(Button)findViewById($ id_of_button)在不同的视图中引入尽可能多的按钮。然而,因为我希望这个特定的按钮在不同的视图中表现出相同的行为(启用等),我想知道是否有一种方法可以创建按钮的单个实例并且只管理我的单个按钮中的那个按钮宾语。
答案 0 :(得分:1)
在单独的布局(R.layout.universalButton)中声明您的按钮,然后您可以将其包含为任何ViewGroup(LinearLayout,RelativeLayout等)的子项,并使用LayoutInflater的inflate方法:
View button=activity.getLayoutInflater().inflate(R.layout.universalButton, viewGroup, false);
button.setOnClickListener(listener);
viewGroup.addView(button);
此外,您可以使用include
语句
<include layout="@layout/universalButton" android:name="button1" />
<include layout="@layout/universalButton" android:name="button2" />
请注意,按钮总会有多个实例,因为视图只能有一个父级!