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
-~----------~----~----~----~------~----~------~--~---

Reply via email to