如何避免重复的 TextView 代码?

Posted

技术标签:

【中文标题】如何避免重复的 TextView 代码?【英文标题】:How do I avoid repetitive TextView code? 【发布时间】:2015-11-22 13:04:02 【问题描述】:

我想在主布局文件中包含以下布局,在多个点,但在每次使用时,我想ONLY更改“android:text”相对布局内的文本视图的属性(如下所示)。我怎样才能做到这一点?

附:我知道如何将它包含在主布局中。这包括相对布局(如下所示),但创建另一个布局文件的主要目的是因为(文本视图的)代码在主布局中被重复使用,唯一不同的属性是“android:text”在这些重复的文本视图之间。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_>

    <TextView
        android:id="@+id/order_id_label"
        android:layout_
        android:layout_
        android:text="test"
        android:fontFamily="sans-serif-light"
        android:padding="20dp"
        android:textSize="20sp"
        android:textStyle="bold" />
</RelativeLayout>

【问题讨论】:

如果你想克隆一个文本视图:***.com/a/3900156/3758439 谢谢,但这并不能回答我的问题。 【参考方案1】:

在您的另一个布局文件中,您可以使用这个 .

&lt;include layout="@layout/main_layout"/&gt;

您可以从您的活动课程中设置文本。

TextView tv = (TextView) findViewById(R.id.order_id_label) tv.setText("New Text");

这是您可以做到这一点的唯一方法。

【讨论】:

【参考方案2】:

如果所有 TextView 元素参数都相同,您可以使用 &lt;merge&gt; &lt;/merge&gt; 指令在单独的文件中定义此组件,然后使用 &lt;include layout="" /&gt; Check here how to reuse

但是如果TextView 参数中的任何一个发生了变化,即android:text 属性,最好的方法是将所有其他TextView 属性分离为自定义样式,并在不同的xml 布局文件中重用这个自定义样式 Check here how to use styles

【讨论】:

我选择这个作为最佳答案,因为第二部分(样式)正是我想要的。我理解这一点,但你能修正错别字,以便其他正在寻找相同答案的人能够理解它。谢谢

以上是关于如何避免重复的 TextView 代码?的主要内容,如果未能解决你的问题,请参考以下文章

android TextView:如何避免换行?

TextView 使用详解

可以将TextView放在RadioGroup中。但是,这是好的做法吗?

如何动态更改多个TextView中的文本? [重复]

如何在单击 TextView 中的文本链接时打开浏览器 [重复]

Android界面 使用TextView实现跑马灯效果