Aha!

android.R.layout.simple_list_item_1 is defined in the platform, you can
find it under <your Android sdk
directory>/platforms/platform-<version>/data/res/layout (that data/res is
very useful to look up things):

The whole layout is a TextView, and its id is "@android:id/text1", which,
on the Java side of things, is android.R.id.text1.

So you'd do something like.

       @Override
       public View getView(int position, View convertView, ViewGroup
parent) {
               View row = super.getView(position, convertView, parent);
*           TextView text = (TextView) row.findViewById(android.R.id.text1);
*           text.setTextColor(0x64788e);
               return row;
       }

Or just this, knowing that the layout is just one TextView:

*TextView text = (TextView) row;*

The direct typecast should work for the hello-listview sample, as that also
uses a row layout containing a single TextView with no children (and no id,
so findViewById won't work here).

-- Kostya

5 января 2012 г. 21:04 пользователь John Davis <davi...@gmail.com> написал:

> Hello
>
> On Thu, Jan 5, 2012 at 11:53 AM, Kostya Vasilyev <kmans...@gmail.com>
> wrote:
> > Just to clarify 2:
> >
> > I meant calling super.getView from your adapter's getView, assuming it's
>  a
> > subclass of ArrayAdapter.
> >
> > Do not call adapter.getView from outside the adapter's code, that's
> > meaningless.
>
> That makes sense. Thanks.
>
> >
> > Now the view ids.... What layout id do you use to initialize the adapter?
> > Perhaps android.R.layout.<something>?
>
> I did :
>                MyAdapter<String> adapter = new
> MyAdapter<String>(this,android.R.layout.simple_list_item_1, values);
>
> >
> > A side note: my suggestions here are just to patch up things based on the
> > route you've already headed down (using ArrayAdapter).
>
>
> For what it is worth, I can do this:
>          public View getView(int position, View convertView, ViewGroup
> parent) {
>          TextView text = new TextView(getContext());
>         text.setText("Hi, I am position " + position);
>         text.setTextColor(Color.parseColor("#64788e"));
>         return  text;
>        }
> That will set the text color to blue, but it will also change the text
> I put in the list.
>
> >
> > One day, as your knowledge grows, you'll want to throw away the
> > three-wheeled bicycle (ArrayAdapter) and create your own, perhaps by
> > extending BaseAdapter.
> >
>
>
> Is this example
> http://developer.android.com/resources/tutorials/views/hello-listview.html
> impossible to manipulate the color of individual list items?  Or, is
> there a way to patch up this code to do what I want?  It seems pretty
> trivial to do. I don't understand why the hooks do not exist for what
> i want to do.
> > -- Kostya
> >
> > 5 января 2012 г. 20:47 пользователь John Davis <davi...@gmail.com>
> написал:
> >
> >> Hello Kostya,
> >>
> >> Thanks for the reply.
> >>
> >> On Thu, Jan 5, 2012 at 11:39 AM, Kostya Vasilyev <kmans...@gmail.com>
> >> wrote:
> >> >
> >> > 2:
> >> >
> >> > Yes, you're supposed to call the base class in your case, the
> >> > ArrayAdapter
> >> > will be doing most of the work for you, inflating new or reusing
> >> > existing
> >> > row layouts.
> >>
> >> Ok. I think I am doing what you say.
> >>
> >> >
> >> > 3:
> >> >
> >> > Use view ids that are relevant to (used inside) your actual row item
> >> > layout.
> >> >
> >> > I very much doubt that R.id.listView1 is it.
> >>
> >> The listview is created using that id.  I did not create any resources
> >> for the individual items. I don't know how to do that.  The example
> >> code I used simply created a listview in xml.
> >>
> >> >
> >> > 4:
> >> >
> >> > view.findViewById() is the getChild call you're looking for, using an
> id
> >> > to
> >> > locate the view. Use correct id value and it should work.
> >>
> >> Super. I am glad you confimed I need ot do that.  However, as I said,
> >> I don't know what would be the id of the row items since they are not
> >> defined.
> >>
> >> >
> >> > -- Kostya
> >> >
> >> > 5 января 2012 г. 20:31 пользователь John Davis <davi...@gmail.com>
> >> > написал:
> >> >>
> >> >> Hello
> >> >>
> >> >> The getView() call for arrayadapter is blank.  Is there a document
> >> >> which describes how it works?
> >> >>
> >> >> I have overridden it in order to change the text color of items in a
> >> >> list view.  So far, I can't find any code which works.
> >> >>
> >> >> I've tried this:
> >> >>
> >> >> public class MyAdapter<T> extends ArrayAdapter<T> {
> >> >>
> >> >>        public MyAdapter(Context context, int textViewResourceId, T[]
> >> >> objects) {
> >> >>                super(context, textViewResourceId, objects);
> >> >>        }
> >> >>        // context, int, <T>[]
> >> >>
> >> >>        @Override
> >> >>        public View getView(int position, View convertView, ViewGroup
> >> >> parent) {
> >> >>                // TODO Auto-generated method stub
> >> >>                View row;
> >> >>            row = super.getView(position, convertView, parent);
> >> >>            TextView text;
> >> >>            text = (TextView) row.findViewById(R.id.listView1);
> >> >>            text.setTextColor(0x64788e);
> >> >>                return row;
> >> >>        }
> >> >> }
> >> >>
> >> >>
> >> >> I don't know if I am supposed to call getView in the main code or
> not,
> >> >> but this will most certain crash the app.
> >> >> The super.getView call seems to get a row in the list.  It seems
>  that
> >> >> you then need to get the view associated with that row.  I have no
> >> >> idea how to do that. I don't have resource id's for the individual
> row
> >> >> items.  Here, I tried to use the  resource id of the list itself.
> >> >> There is not a View.getChild() like call.
> >> >> --
> >> >> John F. Davis
> >> >>
> >> >> 独树一帜
> >> >>
> >> >> --
> >> >> 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
> >> >
> >> >
> >> > --
> >> > 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
> >>
> >>
> >>
> >> --
> >> John F. Davis
> >>
> >> 独树一帜
> >>
> >> --
> >> 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
> >
> >
> > --
> > 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
>
>
>
> --
> John F. Davis
>
> 独树一帜
>
> --
> 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
>

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