hello Brad, thanks for your reply.

Isn't the call to super.getView(...) suppose to do this ?? I already
told the adapter which layout to use (see the constructor of my
adpater on my first post), so it should know which one to inflate.

Anyways I tried something similar to what you suggested :

if (convertView == null) {
        convertView =
LayoutInflater.from(getApplicationContext()).inflate(R.layout.step_list_item,
null);
}

but I've got a similar nullPointerException when I call
"findViewById" :

EditText ed = (EditText)
convertView.findViewById(R.id.list_item_sb); // return null
ed.setText("test"); // will crash

Again, it works fine when the list is shown for the first time but it
crash when I use "adapter.notifyDataSetChanged()" ...
So "R.id.list_item_sb" is found in my layout the first time but not
the second time ???

This is getting confusing :(


On May 31, 10:07 pm, Brad Gies <[email protected]> wrote:
> You need something like this in the getView to create the view if it
> hasn't been created already.:
>
>                   if (convertView == null)
>                   {
>                       LayoutInflater inflater =
> Groups.this.getLayoutInflater();
>                      convertView = inflater.inflate(R.layout.groupitem,
> null);
>                       }
>
> On 31/05/2010 12:58 PM, Christophe wrote:
>
>
>
> > hello,
>
> > I have written a custom ArrayAdapter for a ListActivity :
>
> > private class StepItemAdapter extends ArrayAdapter<Step>  {
> >            public StepItemAdapter(Context context, List<Step>  objects) {
> >                    super(context, R.layout.step_list_item, 
> > R.id.list_item_sb,
> > objects);
> >            }
>
> >           �...@override
> >            public View getView(final int pos, View convertView, ViewGroup
> > parent) {
> >                    View v = super.getView(pos, convertView, parent); // 
> > will crash
> > here
>
> >                    // etc ...
> >            }
> > }
>
> > On the "onCreate" method of the activity I tell the activity to use
> > this adapter with a list of object I get from somewhere else
> > ("t.getSteps()") :
>
> > adapter = new StepItemAdapter(this, t.getSteps());
> > this.setListAdapter(adapter);
>
> > Everything works fine and the activity is displayed. But if I add a
> > new object to the list and tell the adapter to refresh the view I've
> > got an error :
>
> > t.getSteps().add(3, new Step());
> > adapter.notifyDataSetChanged();
>
> > The "getView" method of my adapter is called, which is ok since the
> > list view need to be updated, but I've got an exception on the call to
> > "super.getView(pos, convertView, parent)".
>
> > The stack trace :
>
> > java.lang.NullPointerException
> > at
> > android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:
> > 355)
> > at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
> > at pkr.tm.activities.EditTemplateActivity
> > $StepItemAdapter.getView(EditTemplateActivity.java:145)
> > at
> > android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:
> > 220)
> > at android.widget.AbsListView.obtainView(AbsListView.java:1294)
> > at android.widget.ListView.makeAndAddView(ListView.java:1727)
> > at android.widget.ListView.fillDown(ListView.java:652)
> > at android.widget.ListView.fillSpecific(ListView.java:1284)
> > at android.widget.ListView.layoutChildren(ListView.java:1558)
> > at android.widget.AbsListView.onLayout(AbsListView.java:1147)
> > ...
>
> > Do you guy have any ideas of what is going on ??
>
> --
> Sincerely,
>
> Brad Gies
> -----------------------------------------------------------------------
> Bistro Bot - Bistro 
> Blurbhttp://www.bgies.comhttp://www.bistroblurb.comhttp://www.bistrobot.com
> -----------------------------------------------------------------------
>
> Never doubt that a small group of thoughtful, committed people can
> change the world. Indeed. It is the only thing that ever has - Margaret Mead

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to