Błąd odwoływania się do widoku klasy wewnętrznej w layout / main.xml

Grrr ...

Tworzę podklasę widoku jako klasę wewnętrzną w mojej działalności. Zanim po prostu połączyłem się z tym widokiem z mojej działalności,

setContentView(new CustomView(this));

bez problemów.

Teraz jednak mój widok staje się coraz bardziej złożony, więc robię go częścią FrameLayout, dzięki czemu mogę go przekształcić w widok podstawowy i dodać do niego widżet Spinner. Problem polega na tym, że gdy to robię, pojawia się błąd:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.grafightscratch.ochemmer/com.grafightscratch.ochemmer.MoleculeTablet}: android.view.InflateException: Binary XML file line #4: Error inflating class com.grafightscratch.ochemmer.MoleculeTablet.MoleculeTabletView
...
Caused by: android.view.InflateException: Binary XML file line #4: Error inflating class com.grafightscratch.ochemmer.MoleculeTablet.MoleculeTabletView
...
Caused by: java.lang.ClassNotFoundException: com.grafightscratch.ochemmer.MoleculeTablet.MoleculeTabletView in loader dalvik.system.PathClassLoader@43b74a28

Ten widok działał wcześniej, gdy bezpośrednio do niego podłączyłem, ale gdy próbowałem go dodać w pliku main.xml w ramach framelayout, otrzymałem powyższy błąd. Próbowałem też wprowadzić układ, tylko wyświetlając go przez:

<com.grafightscratch.ochemmer.MoleculeTablet.MoleculeTabletView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/molecule_tablet_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>

Nic nie działa. Ciągle otrzymuję błędy InflateException / ClassNotFoundException. Narzeka na „linię # 3” w binarnym pliku XML i jeśli chodzi o main.xml, to jest to deklaracja pakietu, którą potrójnie sprawdziłem.

EDYTOWAĆ Próbowałem uczynić ten widok oddzielną klasą (tj. Nie klasą wewnętrzną) i działa. Po przeszukaniu znalazłem kilka postów mówiących, że tag xml powinien wyglądać tak:

<com.grafightscratch.ochemmer.MoleculeTablet$MoleculeTabletView ...>

Tj. Znak dolara powinien być użyty do oddzielenia klasy wewnętrznej od klasy głównej. Jednak Eclipse działa na tym, nazywa to błędem i nie pozwala mi budować ani wdrażać z tą postacią. Więc teraz pytanie brzmi: w jaki sposób odnieść się do widoku, który jest klasą wewnętrzną?

questionAnswers(6)

yourAnswerToTheQuestion