我想在不同的活动中使用相同的LinearLayout。在图片中选择的LinearLayout的id是previewLinear。我想要做的是,在不同的活动中使用previewLinear。我有A和B活动。首先,我以编程方式对活动A中的previewLinear进行一些更改(添加边框,将其切成碎片等),我想将整个previewLinear复制到B活动。
pencerebol.xml
我尝试的是什么;
活动:(容器是静态的)
...
setContentView(R.layout.pencerebol);
...
container = (LinearLayout) findViewById(R.id.previewLinear);
container.setBackground(getResources().getDrawable(R.drawable.border));
B活动:
...
setContentView(R.layout.pencerebol);
container = (LinearLayout) findViewById (R.id.previewLinear);
container = A.container; // I know that this line is completely wrong but this is what i want to do.
感谢您的建议。
答案 0 :(得分:3)
您可以在XML文件中使用<include>
属性,只创建一个布局并将其包含在其他活动/片段中,这是一个示例:
为previewLinear布局创建一个xml,将其命名为:
layout_preview_linear.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/previewLinear"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
然后在您的活动A或B中,您可以将其包含在以下内容中:
activity_a.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/activity_a_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
android:id="@+id/previewLayout"
layout="@layout/layout_preview_linear"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
您也可以在JAVA代码中使用该布局,希望这对您有所帮助。
答案 1 :(得分:1)
如果我做得对,你想让B活动的LinearLayout看起来和A活动一样。
您可以在A活动中创建方法
static void createLinearLayout(LinearLayout layout){
layout.setBackground(getResources().getDrawable(R.drawable.border));
...
}
然后在B活动中调用它
A.createLinearLayout(container);