2013-04-01 74 views
1

我最近遇到一個問題,當我命名爲視圖android:id="@+id/TextView1"和代碼Android的佈局視圖ID名稱問題

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

返航即使沒有對命名約定給予警告錯誤的觀點。 當我改名爲text_view_1它工作。

我知道通常的命名規則是一樣android:id="@+id/text_view_1"所有小的情況下或駝峯狀android:id="@+id/textView1"

是否有任何記錄資源這說明了問題,或者它的任何答案嗎? 另外我想知道什麼m代表我經常在開源代碼中看到的變量名稱。例如

TextView mTextView; 

它是一個noob問題,但我無法找到答案的任何地方。

+1

我認爲問題不是大寫首字母。現在很難說什麼是錯的。但如果它不是空的,它確實找到了一些東西。如果它在你的.package.name.R中,那麼它肯定是你指定的。我有一個習慣使用由同行編碼創建的這樣的名字,它工作得很好。 –

+0

你的目標版本是什麼? –

+0

@ Ilango J,目標版本爲API 8 – user2230793

回答

4

嘗試清理和建立你的項目。

的Android coding syle guide狀態:

  • 非公開,非靜態字段名稱以米
  • 靜態字段名稱以s開頭。
  • 其他字段以小寫字母開頭。
  • 公共靜態final字段(常量)是ALL_CAPS_WITH_UNDERSCORES。

這將是private ImageButton mButtonStart;private static sSingletonThing;

該公約是唯一需要被使用,如果你想參與到Android源代碼的方式,你可以寫在任何風格的自己的應用程序。

+0

謝謝你的回答,並指向官方資源。 – user2230793

+0

你可以嘗試這些東西,如果他們工作: 1.刪除「gen」文件夾 2.清理並建立您的項目 3.刪除如果「導入android.R」語句,如果有 – Shiv

2

這是Eclipse中的一個已知問題。這是錯誤的觀點,因爲肯定有一些參考問題。通常清潔項目或重新啓動日食有幫助。

關於前綴m,'m'是一個命名約定,用於表示私有成員變量和方法。

+0

當引用問題發生時,R.java不會刷新,清理項目或刷新項目,重新生成R文件,因此問題得到解決! – Antrromet

+0

謝謝。如果我遇到同樣的問題,下次我會做一個乾淨的構建。 – user2230793