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