【问题标题】:Why are the XML ID name conventions different from the Java one's?为什么 XML ID 名称约定不同于 Java 的?
【发布时间】:2017-10-21 06:33:40
【问题描述】:

我查看了几个 Android 项目。为什么在 XML ID 中使用带下划线的小写字母是一种常见的做法?

在 XML 中:

@+id/name_text <!-- sometimes with "_view" suffix, sometimes without -->

在 Java 中:

TextView nameTextView = // ...

我建议以下 ID:@+id/nameTextView

实际上我就是这样做的。有什么缺点?

如果 XML ID 和字段名称遵循相同的模式,尤其是数据绑定可以做得更短(例如使用 ButterKnife)。在这种情况下,我们可以省略注释中的 XML ID:

@BindView TextView nameTextView;

【问题讨论】:

    标签: java android naming-conventions butterknife


    【解决方案1】:

    目前还没有针对 Java 的此类功能,但针对 Kotlin:Kotlin Android Extensions

    如果您的视图是这样声明的(在 activity_main.xml 中):

     <TextView
            android:id="@+id/hello"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Hello World, MyActivity"
            />
    

    您可以在 Activity 中像这样使用它:

    hello.setText("Hi!")
    

    为此,唯一需要做的就是将其添加到要使用视图的 Kotlin 文件中:

    import kotlinx.android.synthetic.main.activity_main.*
    

    当然还要在项目本地 build.gradle 文件中添加依赖项:

    apply plugin: 'kotlin-android-extensions'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-08
      • 1970-01-01
      • 2012-09-14
      • 1970-01-01
      • 2011-03-11
      • 2019-11-10
      • 2013-07-10
      • 1970-01-01
      相关资源
      最近更新 更多