【问题标题】:DRY approach on androidandroid上的DRY方法
【发布时间】:2013-12-30 10:28:11
【问题描述】:

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

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

【问题讨论】:

    标签: android button layout copy dry


    【解决方案1】:

    好吧,如果您需要多个按钮,则需要为它们指定不同的标识符。你可以在你的导入声明中这样做:

    <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!" />
    

    【讨论】:

    • 其实正确的语法是 而不是导入。但是很棒!这正是我想要的
    猜你喜欢
    • 1970-01-01
    • 2011-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-24
    • 1970-01-01
    相关资源
    最近更新 更多