1

当我将视图命名为android:id="@+id/TextView1"和代码时,我最近遇到了一个问题

TextView tv1 = (TextView) findViewById(R.id.TextView1);

即使没有给出命名约定的警告,也会返回错误的视图。当我将名称更改为 text_view_1 时,它起作用了。

我知道通常的命名约定都是小写android:id="@+id/text_view_1"或驼峰式android:id="@+id/textView1"

是否有任何文档资源可以解释该问题或任何答案?另外我想知道我在开源代码中经常看到的变量名中的 m 代表什么。例如

TextView mTextView;

这是一个菜鸟问题,但我在任何地方都找不到答案。

4

2 回答 2

4

尝试清理并构建您的项目。

Android编码风格指南指出:

  • 非公共、非静态字段名称以 m 开头。
  • 静态字段名称以 s 开头。
  • 其他字段以小写字母开头。
  • 公共静态最终字段(常量)是 ALL_CAPS_WITH_UNDERSCORES。

这将是private ImageButton mButtonStart;private static sSingletonThing;

顺便说一句,只有在您想为 Android 源代码做出贡献时才需要使用该约定,您可以以任何风格编写自己的应用程序。

于 2013-04-01T09:09:04.473 回答
2

那是 Eclipse 中的一个已知问题。它返回了错误的视图,因为一定有一些参考问题。通常清理项目或重新启动 Eclipse 会有所帮助。

关于前缀 m,“m”是一种命名约定,用于表示私有成员变量和方法。

于 2013-04-01T09:08:58.203 回答