Thanks a lot for your clarification, Mark! Very lucid. Regards
On Dec 28, 2:07 pm, Mark Murphy <mmur...@commonsware.com> wrote: > blindfold wrote: > > Not using @+id through > > > ArrayAdapter<String> MyList = new ArrayAdapter<String>(this, > > R.layout.mylist); > > > works fine, but using @+id through > > > ArrayAdapter<String> MyList = new ArrayAdapter<String>(this, > > R.id.mylist); > > > does not, where my mylist.xml reads > > > <?xml version="1.0" encoding="utf-8"?> > > <TextView xmlns:android="http://schemas.android.com/apk/res/android" > > android:layout_width="fill_parent" > > android:layout_height="wrap_content" > > android:textAppearance="?android:attr/textAppearanceLarge" > > android:gravity="center_vertical" > > android:paddingLeft="6dip" > > android:minHeight="?android:attr/listPreferredItemHeight" > > android:id="@+id/mylist" > > /> > > > It all compiles just fine, but at runtime I get > > > ERROR/AndroidRuntime(1356): android.content.res.Resources > > $NotFoundException: Resource ID #0x7f06001a type #0x12 is not valid > > > Am I missing some conceptual issue with the use of ArrayAdapter or the > > way @+id gets expanded? Of course I can just use R.layout.mylist, but > > it feels a bit inconsistent as I use the R.id referencing in my source > > code with many other items (albeit through findViewById()). > > R.layout points to layout resources. Layout resources are used whenever > Android wants to inflate a tree of Views, such as setContentView(), > manual inflation via getLayoutInflater(), etc. > > R.id points to individual widgets (Views) within an inflated layout. > R.id values have no meaning outside the context of a specific layout -- > in other words, R.id.fu means nothing on its own, but > myInflatedView.findViewById(R.id.fu) might, if myInflatedView was > inflated from a layout resource that had something with > android:id="@+id/fu". > > In the documentation for the ArrayAdapter constructor you're using, the > second parameter is described as: > > "The resource ID for a layout file containing a TextView to use when > instantiating views." > > Hence, it is expecting something in the R.layout space ("resource ID for > a layout file"). > > -- > Mark Murphy (a Commons Guy)http://commonsware.com > _The Busy Coder's Guide to Android Development_ Version 1.9 Available! --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---