I wouldn't call that a hack if you know that ALBUM_KEY will be
unique.  But I suspect it may not be, as why would they have both an
ALBUM_ID and an ALBUM_KEY?

The DISTINCT should never be needed if you were truly retrieving a
unique key, as a key is distinct by definition.  Something doesn't
seem right.

On May 23, 9:04 am, Gabriel Simões <[email protected]> wrote:
> a little hack: added
>
> MediaStore.Audio.Media.ALBUM_KEY + " as '_id'"
>
> and now it seems to work ....
>
> On May 22, 9:54 pm, Gabriel Simões <[email protected]> wrote:
>
>
>
> > Thanks once again Kostya,
>
> > I came up with a cleaner solution that still has one thing left to
> > work:
>
> > Instead of using Media.Audio.Album I got to using only
> > Media.Audio.Media. It works as expected but the lack of the "_id"
> > column now is giving my a big headache when loading the Adapter.
> > I tried to use
>
> >         String[] cols = new String[] {
> >                         "distinct " + MediaStore.Audio.Media.ALBUM_ID + " 
> > as _id",
> >                         MediaStore.Audio.Media.ALBUM,
> >                         MediaStore.Audio.Media.ARTIST
> >         };
>
> > But it simply doesn´t work. How can I fix the Adapter dependency of
> > _id so my expandablelistview works?
>
> > Thanks,
> > Gabriel Simões
>
> > On May 22, 2:42 pm, Kostya Vasilyev <[email protected]> wrote:
>
> > > 22.05.2011 21:13, Gabriel Simões пишет:
>
> > > > My second approach was to find a way to block the displaying of some
> > > > entries creating a custom adapter but while I can change the
> > > > information I couldn´t find a way to not display full entries.
>
> > > Ok, here is how you could do filtering on the fly.
>
> > > Assume the data set you get from CP in a cursor is like this:
>
> > > 0 - mp3
> > > 1 - mp3
> > > 2 - no mp3
> > > 3 - mp3
> > > 4 - no mp3
>
> > > Look through the cursor, checking for mp3s, and create a parallel index
> > > array like this:
>
> > > [ 0, 1, 3 ]
>
> > > The array has the cursor positions where albums have mp3.
>
> > > Now you have the count for the adapter's getCount method, which is the
> > > length of this array. The positions as seen by the list view are 0
> > > through 2.
>
> > > In getView / bindView, use the table above to find out the position for
> > > the original cursor: the 0th item is remapped to 0, 1 is mapped to 1,
> > > but 2 is mapped to 3.
>
> > > -- Kostya
>
> > > --
> > > Kostya Vasilyev --http://kmansoft.wordpress.com- 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

Reply via email to