重用 xml 布局但覆盖 src 和文本属性

Teo*_*ald 5 android android-layout

我有一个静态布局文件,让我们说一下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:layout_width="56dp"
        android:layout_height="56dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginBottom="24dp"
        android:src="@drawable/some_drawable" />

    <TextView
        android:id="@id/placeholder_error_info"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="something"
        />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我希望能够在整个应用程序中多次重用此布局文件,但根据每个用例更改文本和 src 属性。

我不想复制布局文件和自定义视图,这似乎有点过分了。框架中有解决方案吗?

Jsc*_*ols 1

我假设您正在 Activity 的onCreate(). 布局膨胀后,您需要在代码中获取对 ImageView 和 TextView 的引用,然后可以调用它们的方法。

首先,向 ImageView 添加一个 id: android:id="@+id/image

然后,在您的 Java 代码中:

@Override
public void onCreate(Bundle savedInstanceState) {
    // inflate the layout
    setContentView(R.layout.your_layout);

    // get references
    ImageView imageView = (ImageView) findViewById(R.id.image);
    TextView textView = (TextView) findViewById(R.id.placeholder_error_info);

    // set properties
    imageView.setImageResource(R.drawable.some_drawable);
    textView.setText("something");
}
Run Code Online (Sandbox Code Playgroud)

您可以将 setImageResource 和 setText 的调用替换为您喜欢的任何内容。祝你好运!