Android上的DRY方法

时间:2013-12-30 10:28:12

标签: android button layout copy dry

在开发Android应用程序的过程中,我注意到我使用了多个按钮,它们之间的区别在于Id,文本和onclick功能。 所以我实现了一个不同的XML文件,其中包含1个样式的按钮,当我想使用按钮时,我只需将其导入到所需的布局中。 但后来我意识到我遇到了一个新问题:我不知道如何在每个导入的按钮上设置所有不同的参数......

有没有一种方法可以执行此操作并坚持DRY方法?

1 个答案:

答案 0 :(得分:0)

好吧,如果您需要多个按钮,则需要为它们提供不同的标识符。您可以在导入声明中执行此操作,如下所示:

<include layout="@layout/your_button"
        android:id="@+id/loginButton" />

然后,您可以像往常一样通过ID引用它们:

Button loginButton = (Button) findViewById(R.id.loginButton);
loginButton.setText("Login");

但是,我不确定这是一种比在XML中根据需要声明按钮更好的方法。如果要避免重复样式,可以为按钮定义自定义样式并将其应用于XML声明中。有关详细信息,请参阅docs on styling

以下是带有EditText的文档的示例。

在样式中:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CustomText" parent="@style/Text">
        <item name="android:textSize">20sp</item>
        <item name="android:textColor">#008</item>
    </style>
</resources>

在你的布局中:

<?xml version="1.0" encoding="utf-8"?>
<EditText
    style="@style/CustomText"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Hello, World!" />