Hmm all the @overrides were gone.. :s
On 7 okt, 16:18, purvi <[email protected]> wrote:
> Hi,
>
> I had the same problem, it was gone when i removed all the @override
> lines above the functions of the SeparateListAdapter.
> So try not overriding the functions.
> It worked for me.
>
> Regards,
> Purvi
>
> On Sep 27, 4:00 pm, Wouter <[email protected]> wrote:
>
> > But I declare it there and then in my runnable i do
> > adapter.notifyDatasetChanged so the listview knows there is other data
> > to show.
> > This works for other adapters.. Really don't know why this isn't
> > working.
>
> > My listview with headers works, i can see the first header or
> > sometimes more but when i scroll down it crashes.. When i do for
> > example
>
> > adapter.addSection("test", new cinemaAdapter(this, cinema)); it makes
> > 1 list with 1 header without crashing..
>
> > So there must be a problem with generating my header titles :s
>
> > On 27 sep, 21:55, Marco Nelissen <[email protected]> wrote:
>
> > > I don't see anything obviously wrong with your code. I do notice that
> > > you apparently create the SeparatedListAdapter and then immediately
> > > call setListAdapter with it, whereas the SeparatedListAdapter sample
> > > code creates the adapter, then adds a bunch of sections to it, and
> > > then calls setListAdapter at the end. Could it be that
> > > SeparatedListAdapter doesn't work when it is empty? Have you tried
> > > postponing your call to setListAdapter until after you've added all
> > > the sections?
>
> > > On Sun, Sep 27, 2009 at 12:32 PM, Wouter <[email protected]> wrote:
>
> > > > Ok i will try to explain how i generate my headers with the
> > > > seperatedlistadapter..
>
> > > > private SeparatedListAdapter adapter;
>
> > > > in my setupViews functions:
>
> > > > this.adapter = new SeparatedListAdapter(this);
> > > > setListAdapter(adapter);
>
> > > > And then to retrieve my data:
>
> > > > �...@suppresswarnings("unchecked")
> > > > public void retrieveCinema()
> > > > {
> > > > try {
> > > > HashMap<String, Object> response =
> > > > (HashMap<String, Object>)
> > > > client.call("film.retrieveCinema", sessionKey);
>
> > > > Comparator reverse = Collections.reverseOrder();
>
> > > > TreeMap<String, Object> result = new
> > > > TreeMap<String, Object>
> > > > (reverse);
> > > > TreeMap<String, Object> sortedMap = new
> > > > TreeMap<String, Object>
> > > > (response);
> > > > result.putAll(sortedMap);
>
> > > > Iterator it = result.entrySet().iterator();
>
> > > > while (it.hasNext()) {
> > > > cinema = new ArrayList<FilmDetail>();
> > > > Map.Entry pairs = (Map.Entry)it.next();
> > > > Object[] cinemaFilms =
> > > > (Object[])pairs.getValue();
> > > > FilmDetail cinemaMovie = new FilmDetail();
>
> > > > for (int i=0; i<cinemaFilms.length; i++)
> > > > {
> > > > cinemaMovie = new FilmDetail();
> > > > Map m = (Map) cinemaFilms[i];
> > > > cinemaMovie.setTitle(m.get("title").toString());
> > > > cinemaMovie.setYear(m.get("year").toString());
> > > >
> > > > cinemaMovie.setVotes_count(m.get("votes_count").toString());
> > > >
> > > > cinemaMovie.setActors_text(m.get("actors_text").toString());
> > > > cinemaMovie.setDirectors_text(m.get
> > > > ("directors_text").toString());
> > > >
> > > > cinemaMovie.setGenres_text(m.get("genres_text").toString());
> > > >
> > > > cinemaMovie.setAverage(m.get("average").toString());
> > > >
> > > > cinemaMovie.setFilmId(m.get("filmId").toString());
> > > >
> > > > cinemaMovie.setDuration(m.get("duration").toString());
> > > > cinema.add(cinemaMovie);
> > > > }
>
> > > > String datum = pairs.getKey().toString();
> > > > SimpleDateFormat formatter = new
> > > > SimpleDateFormat("EEEEEE d
> > > > MMMMMM");
> > > > formatter.applyLocalizedPattern("EEEEEE d
> > > > MMMMMM");
> > > > int year= Integer.valueOf(datum.substring(0,4));
> > > > int month =
> > > > Integer.valueOf(datum.substring(5,7));
> > > > int day = Integer.valueOf(datum.substring(8,10));
> > > > java.util.Date date = new java.util.Date(year,
> > > > month, day);
> > > > String parsed = formatter.format(date);
>
> > > > System.out.println(parsed);
>
> > > > adapter.addSection(parsed, new
> > > > cinemaAdapter(this, cinema));
>
> > > > }
>
> > > > } catch (XMLRPCException e) {
> > > > e.printStackTrace();
> > > > }
> > > > runOnUiThread(returnRes);
>
> > > > }
>
> > > > And for every date in my response i do this
>
> > > > adapter.addSection(parsed, new cinemaAdapter(this, cinema));
>
> > > > and parsed is the parsed text from date (example 31 october))
>
> > > > And this is how i generate it!
> > > > It there an error somewhere?
> > > > On 27 sep, 20:23, Marco Nelissen <[email protected]> wrote:
> > > >> On Sun, Sep 27, 2009 at 6:01 AM, Wouter <[email protected]> wrote:
>
> > > >> > On 26 sep, 19:10, Marco Nelissen <[email protected]> wrote:
> > > >> >> On Sat, Sep 26, 2009 at 6:20 AM, Wouter <[email protected]>
> > > >> >> wrote:
>
> > > >> >> > When i look at the sample from the seperatedlistadapter i see
> > > >> >> > this:
>
> > > >> >> > # @Override
> > > >> >> > # public void onCreate(Bundle icicle) {
> > > >> >> > # super.onCreate(icicle);
> > > >> >> > #
> > > >> >> > # List<Map<String,?>> security = new
> > > >> >> > LinkedList<Map<String,?>>
> > > >> >> > ();
> > > >> >> > # security.add(createItem("Remember passwords", "Save
> > > >> >> > usernames and passwords for Web sites"));
> > > >> >> > # security.add(createItem("Clear passwords", "Save
> > > >> >> > usernames
> > > >> >> > and passwords for Web sites"));
> > > >> >> > # security.add(createItem("Show security warnings", "Show
> > > >> >> > warning if there is a problem with a site's security"));
> > > >> >> > #
> > > >> >> > # // create our list and custom adapter
> > > >> >> > # SeparatedListAdapter adapter = new SeparatedListAdapter
> > > >> >> > (this);
> > > >> >> > # adapter.addSection("Array test", new
> > > >> >> > ArrayAdapter<String>
> > > >> >> > (this,
> > > >> >> > # R.layout.list_item, new String[] { "First item",
> > > >> >> > "Item
> > > >> >> > two" }));
> > > >> >> > # adapter.addSection("Security", new SimpleAdapter(this,
> > > >> >> > security, R.layout.list_complex,
> > > >> >> > # new String[] { ITEM_TITLE, ITEM_CAPTION }, new int[]
> > > >> >> > { R.id.list_complex_title, R.id.list_complex_caption }));
> > > >> >> > #
> > > >> >> > # ListView list = new ListView(this);
> > > >> >> > # list.setAdapter(adapter);
> > > >> >> > # this.setContentView(list);
> > > >> >> > #
> > > >> >> > # }
>
> > > >> >> > so every section is using a different layout file. So why doestn't
> > > >> >> > this work with me? :(
>
> > > >> >> The specific crash you're seeing is caused by the wrong layout being
> > > >> >> used for a list item, that much is clear from the log. It's hard to
> > > >> >> say whether this is because you're using this SeparatedListAdapter
> > > >> >> wrong, or because there's a bug in it. With SeparatedListAdapter
> > > >> >> you're actually using multiple adapters (one for each section, and
> > > >> >> one
> > > >> >> for all the section-headers), which makes it a little harder to
> > > >> >> debug.
> > > >> >> You could start by adding lots of logging, so you can see what
> > > >> >> position it's trying to get a view for, what section and layout it
> > > >> >> thinks that position corresponds to and then check whether that
> > > >> >> layout
> > > >> >> actually has all the fields that that section's adapter needs.
>
> > > >> >> On thing that's a bit suspicious about the code you've posted so far
> > > >> >> is that you appear to be assigning values (data) to the various
> > > >> >> views
> > > >> >> in your getView(), which is not what you would normally do. Normally
> > > >> >> getView only returns a layout of the correct type, and the adapter
> > > >> >> itself then assigns the data from the array or Cursor to the various
> > > >> >> views in your layout.
>
> > > >> > Hmm, i only use on view to assign values to (R.layout.cinema_row):
>
> > > >> You are also assigning values to a lot of the child views of that
> > > >> layout (all of those calls to setText). On second thought I don't
> > > >> think that is actually the problem though.
> > > >> Given where it crashed, the problem is with the adapter you specified
> > > >> for the section headers, which if I understand correctly is not
> > > >> cinemaAdapter, but some other adapter (possibly a plain ArrayAdapter)
> > > >> that displays dates. If you post the code for that (how do you create
> > > >> it), we can probably sort this out.- Hide quoted text -
>
> > - Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---