如何在不同的 Activity 中使用相同的 LinearLayout

How To Use Same LinearLayout In Different Activities

我想在不同的活动中使用相同的 LinearLayout。图片中选中的LinearLayout的id为previewLinear。我想要做的是,在不同的 activity 中使用 previewLinear。我有 A 和 B 活动。首先,我以编程方式对 activity A 中的 previewLinear 进行了一些更改(添加边框,将其切成碎片等),我想将整个 previewLinear 复制到 B activity.

pencerebol.xml

我试过的是;

A Activity: (容器是静态的)

...
setContentView(R.layout.pencerebol);
...
container = (LinearLayout) findViewById(R.id.previewLinear);
        container.setBackground(getResources().getDrawable(R.drawable.border));

乙Activity:

...
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.

谢谢指教。

如果我没猜错,你想使 B activity 中的 LinearLayout 看起来与 A activity 中的相同。

您可以在 A 中创建方法 activity

static void createLinearLayout(LinearLayout layout){
    layout.setBackground(getResources().getDrawable(R.drawable.border));
    ...
} 

然后在B中调用activity

A.createLinearLayout(container);

您可以在 XML 文件中使用 <include> 属性,您只需创建一个布局并将其包含在另一个 activities/fragments 中,这是一个示例那:

为您的 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>

然后在您的 activity 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 代码中使用该布局,希望这对您有所帮助。