Never mind I figured it out. I had to override the builtin layout with
my own layout which assigned a TouchInterceptor as the ListView for
the ListActivity.

On May 30, 3:48 pm, Ben Roberts <[email protected]> wrote:
> I'm trying to write an app which will present a list of items to the
> user that can be reordered, so I want to use the same code that's used
> in the Music app to reorder items in a playlist. This is controlled
> via com.android.music.TouchInterceptor, which extends ListView.
>
> I copied this file into my project, changed the package to my own,
> changed all references to mContext (a private field in ListAdaptor) to
> getContext() because I was getting compile errors, and changed the R.*
> references to my own layout ID's and icons. There are no other changes
> to the class.
>
> In the Music app, TrackBrowserActivity sets up move listeners on its
> ListView using this:
>
> public class TrackBrowserActivity extends ListActivity
>         implements View.OnCreateContextMenuListener, MusicUtils.Defs,
> ServiceConnection
> {
>     [...]
>     private ListView mTrackList;
>     [...]
>     /** Called when the activity is first created. */
>     @Override
>     public void onCreate(Bundle icicle)
>     {
>         [...]
>         mTrackList = getListView();
>         mTrackList.setOnCreateContextMenuListener(this);
>         if (mEditMode) {
>             //((TouchInterceptor) mTrackList).setDragListener
> (mDragListener);
>             ((TouchInterceptor) mTrackList).setDropListener
> (mDropListener);
>             ((TouchInterceptor) mTrackList).setRemoveListener
> (mRemoveListener);
>             mTrackList.setCacheColorHint(0);
>         } else {
>
> ...so I tried doing the same thing in my app:
>
> public class MyClass extends ListActivity implements
> OnCreateContextMenuListener {
>     [...]
>     private ListView mItemList;
>     [...]
>     @Override
>     protected void onCreate(Bundle icicle) {
>         [...]
>         mItemList=getListView();
>         mItemList.setOnCreateContextMenuListener(this);
>         ((TouchInterceptor)mItemList).setDropListener(mDropListener);
>         ((TouchInterceptor)mItemList).setRemoveListener
> (mRemoveListener);
>
> ...but my code results in a ClassCastException. That actually doesn't
> surprise me since the ListView in my ListActivity is not an instance
> of TouchInterceptor, but how come it works in the Music app when it's
> doing things exactly the same way? I tried this on the 1.1 SDK and
> just upgraded to 1.5 to check it there, and it occurs under both.
--~--~---------~--~----~------------~-------~--~----~
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