Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 关于xml中包含标记和视图实现的问题_Android_Include - Fatal编程技术网

Android 关于xml中包含标记和视图实现的问题

Android 关于xml中包含标记和视图实现的问题,android,include,Android,Include,大家好,提前谢谢你们,对不起我的英语。我有两个很大的疑问 1-我没有太多时间在android上编程,而且我很确定我用错误的方式做了很多事情。例如,我制作了几个应用程序,其中在xml定义中包含了另一个xml 例如,假设两个活动的xml定义中都包含标题为_section.xml的活动。标题部分有5个按钮和更多视图等。好的,在xml中,只是创建一个include,它可以工作……但是要实现这些按钮……我必须在这两个活动中重复代码吗??在这两个活动中复制代码听起来很糟糕……但我该怎么做,例如在活动A和B中

大家好,提前谢谢你们,对不起我的英语。我有两个很大的疑问

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来管理转换(如果您愿意)将是一个不错的结果:)