Android 关于xml中包含标记和视图实现的问题
大家好,提前谢谢你们,对不起我的英语。我有两个很大的疑问 1-我没有太多时间在android上编程,而且我很确定我用错误的方式做了很多事情。例如,我制作了几个应用程序,其中在xml定义中包含了另一个xml 例如,假设两个活动的xml定义中都包含标题为_section.xml的活动。标题部分有5个按钮和更多视图等。好的,在xml中,只是创建一个include,它可以工作……但是要实现这些按钮……我必须在这两个活动中重复代码吗??在这两个活动中复制代码听起来很糟糕……但我该怎么做,例如在活动A和B中?我是否必须在两个活动类中都使用完全相同的代码Android 关于xml中包含标记和视图实现的问题,android,include,Android,Include,大家好,提前谢谢你们,对不起我的英语。我有两个很大的疑问 1-我没有太多时间在android上编程,而且我很确定我用错误的方式做了很多事情。例如,我制作了几个应用程序,其中在xml定义中包含了另一个xml 例如,假设两个活动的xml定义中都包含标题为_section.xml的活动。标题部分有5个按钮和更多视图等。好的,在xml中,只是创建一个include,它可以工作……但是要实现这些按钮……我必须在这两个活动中重复代码吗??在这两个活动中复制代码听起来很糟糕……但我该怎么做,例如在活动A和B中
private View header_section;
private Button bExample;
header_section=findViewById(R.id.header_section);
bExample=(Button)header_section.findViewById(R.id.bExample);
bExample.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//Whatwever...call a number, for example
}
});
在主xml中,类似于:
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="0dp" >
<include android:id="@+id/header_section" android:layout_gravity="center" android:gravity="center" layout="@layout/header_section" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="0dp" >
<Button android:id="@+id/bExample" />
</LinearLayout>
在header_section.xml中,类似于:
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="0dp" >
<include android:id="@+id/header_section" android:layout_gravity="center" android:gravity="center" layout="@layout/header_section" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="0dp" >
<Button android:id="@+id/bExample" />
</LinearLayout>
2-假设你的应用程序中有10项活动。如果在所有应用程序中都有具有相同功能的标题部分和底部部分,只更改中心区域(显示不同的列表、视图等)……最好在所有应用程序中只有一个活动,中心区域有一个viewflipper?或者有10个活动,我不知道是否可以避免,在第1点中询问,代码在所有10个活动中重复,以实现header和bottoms视图、处理程序等
谢谢并致以最诚挚的问候是的,通常情况下,你应该使用它们,但你可以让它更简单
1.a)bExample=(按钮)findviewbyd(R.id.bExample)//不需要加载视图
1.b)您可以在布局内的button/clicable元素中稍微缩短调用onclick的方式,下面是一个示例:
<!--inside layout -->
<Button android:id="@+id/bExample" android:onClick="aceptar" />
有关在所有活动中实现相同方法的问题,请查看此帖子:
2) 取决于应用程序
如果不做太多工作,可以在同一活动中加载所有内容,并隐藏/显示不需要的布局元素。
但是,无论如何,最好使用不同的活动,如果布局不“重”(太多元素/包含在内),您可以为所有活动加载相同的布局,并且您只需要更改不同的内容(字符串)和/或隐藏/显示不同的元素。您好,Jordi,thx回答。关于问题1)我仍然觉得奇怪,你必须在10个地方重复代码,但你发布的链接是一个非常大的问题,我想:)关于2)我想我应该做这件事,并且都在相同的xDDHi Rako中,希望链接能帮助你:)。大约2,在低端手机中试用,因为如果在布局中使用太多组件(和/或在ListView中放置大量图片,…),它可能会在加载时崩溃(在中高端手机中也是如此)。如果不是很多东西的话,那就是一项活动。。使用一两个变量来跟踪您的实际“活动”,操作简单,菜单不会移动,因此使用ViewFlipper来管理转换(如果您愿意)将是一个不错的结果:)