Co to jest R:
Nie ma nic bardzo tajemniczego w R. To tylko klasa, która ma wiele statycznych podklas, otwórz ją w zaćmieniu i spójrz (jej pod gen /).
Każdy element tej klasy jest jedną z dwóch rzeczy: 1) statyczne klasy końcowe lub 2) statyczne końcowe liczby całkowite, które są unikalne w stosunku do innych członków swojej klasy.
Dlaczego jest tak tajemniczy:
łatwo się pomylić, ponieważ R jest automatycznie generowany przez mrówkę. Jest to tajemnicze, ponieważ nie powinieneś go „dotykać” ręcznie (oczywiście możesz, ale twoje zmiany zostaną automatycznie usunięte po regeneracji). Jest to dodatkowo tajemnicze, ponieważ czasami zaćmienie automatycznie importuje standardowy plik R Androida (jak omówiono w odpowiedziach powyżej)
Dlaczego zawsze jest pierwszym, którego nie można rozwiązać: R ściśle przestrzega reguł klas i pakietów Java, nie ma nic specjalnego w tym, jak R działa w odniesieniu do importu. R zostanie automatycznie umieszczony w pakiecie określonym we wpisie pakietu w pliku manifestu
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="package.which.will.contain.R.and.probably.the.main.package.in.the.application" android:versionName="8.6.2011" android:versionCode="1">
<uses-sdk android:minSdkVersion="13" />
Aby zobaczyć, do jakiego pakietu należy twój plik R, po prostu otwórz folder gen / w eclipse (widok pakietów). Zobaczysz tam jeden pakiet, który będzie miał nazwę określoną w manifeście. Spróbuj go usunąć, wróci, jeśli wszystkie twoje zasoby będą zgodne z prawidłowymi regułami nazewnictwa, a wszystkie pliki xml będą zgodne z prawidłowymi regułami xml i jeśli automatyczne budowanie jest włączone w eclipse.
Kluczem do zrozumienia pliku R jest uświadomienie sobie, że znajduje się on w tym samym pakiecie co inne klasy, nawet jeśli znajduje się w innym katalogu niż inne pliki należące do Twojego pakietu „głównego”. Po zrozumieniu tego i zrozumieniu składni i nazewnictwa plików zasobów rozwiązywanie problemów z językiem R jest łatwe.