如何在Android中的不同布局中使用相同的UI实例

时间:2015-11-09 23:55:37

标签: android user-interface layout static singleton

我有一个UI组件,比如一个按钮,它存在于我的应用程序的多个视图中。我使用单例方法来跟踪按钮的状态。此按钮位于这些不同视图中的不同位置。现在,我只是通过执行(Button)findViewById($ id_of_button)在不同的视图中引入尽可能多的按钮。然而,因为我希望这个特定的按钮在不同的视图中表现出相同的行为(启用等),我想知道是否有一种方法可以创建按钮的单个实例并且只管理我的单个按钮中的那个按钮宾语。

1 个答案:

答案 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语句

将其包含在XML中的任何位置
<include layout="@layout/universalButton" android:name="button1" />

<include layout="@layout/universalButton" android:name="button2" />

请注意,按钮总会有多个实例,因为视图只能有一个父级!