There are only two choices (off the top of my head) that could cause a
nullPointerException. One is the convertView is null, and the other is
that the
R.id.list_item_sb is not part of the layout of the convertView, so you get the
NullPointerException when you try to cast it to EditText.
Can you post your entire getView method?
On 31/05/2010 1:36 PM, Christophe wrote:
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
--
Sincerely,
Brad Gies
-----------------------------------------------------------------------
Bistro Bot - Bistro Blurb
http://www.bgies.com
http://www.bistroblurb.com
http://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