There is no method 'getView' on a ListView class. And i expect i wouldn't return a number....
However, you do define a *static *field called *listItems*. Do you update the *listItems *field directly without notifying the your *BaseAdapter*? If so, this could be the problem. Notify the *BaseAdapter *by calling 'notifyDataSetChanged()' on it after you make the appropriate changes to its data (*listItems*). Note that you should not make this field (*listItems*) a *static*/class field. Just make it a regular/instance field, fill it with data and send this to your BaseAdapter and let your BaseAdapter handle it. On Thursday, May 15, 2014 2:09:57 PM UTC-4, plnelson wrote: > > > I'm getting a crash in my adapter's *getView()* routine because it's > being called with a position value of 6 and my datasource only has 6 items > in it. So I assumed that the position parameter should be in a range of > [0]-[5]? What determines the range of values in *getView(*)'s position > parameter? > > Details: > > the XML ... > > <ListView >> android:id="@android:id/list" >> android:layout_height="match_parent" >> android:layout_width="match_parent" >> android:cacheColorHint="@color/colGrey" >> android:background="@color/colGrey" >> android:clickable="true" >> android:fastScrollEnabled="true" >> android:choiceMode="none"/> >> > > ...In MyListActivity, which is a ListActivity . . . > > public static ListView lv; // my ListView in the code >> > > ... during *onCreate()* . . . > > setContentView(R.layout.mylist); > lv = getListView(); > > > create the adapter and bind it . . . > > mylistadapter = new MyListAdapter(MyListActivity.this); >> setListAdapter(mylistadapter); // bind the adapter >> > > ...the data source is an ArrayList called listItems. during the course of > running the program its size varies and it may have been 15 earlier in > program execution . . . > > public static ArrayList<String>listItems=new ArrayList<String>(); >> > > ... in my adapter, which is a BaseAdapter, my ovveride of getCount() looks > like this . . . > > @Override >> public int getCount() { >> return listItems.size(); >> } >> > > ... when I call *getCount()* in *getView()* it returns 6, which is the > number of items in the data source, but if I call lv.*getView(*) it > returns 15. (any idea where this 15 is coming from?) Could that be why the > adapter is calling *getView()* with index too big? > > Thanks in advance! > > > -- 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 unsubscribe from this group and stop receiving emails from it, send an email to android-developers+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.