Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (C) 2007 The Android Open Source Project
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package com.example.android.apis.view;
 
Demonstrates expandable lists backed by Cursors
 
 public class ExpandableList2 extends ExpandableListActivity {
 
     private static final String[] CONTACTS_PROJECTION = new String[] {
         .,
         .
     };
     private static final int GROUP_ID_COLUMN_INDEX = 0;
 
     private static final String[] PHONE_NUMBER_PROJECTION = new String[] {
             .,
             .
     };
 
     private static final int TOKEN_GROUP = 0;
     private static final int TOKEN_CHILD = 1;
 
     private static final class QueryHandler extends AsyncQueryHandler {
         private CursorTreeAdapter mAdapter;
 
         public QueryHandler(Context contextCursorTreeAdapter adapter) {
             super(context.getContentResolver());
             this. = adapter;
         }
 
         @Override
         protected void onQueryComplete(int tokenObject cookieCursor cursor) {
             switch (token) {
             case :
                 .setGroupCursor(cursor);
                 break;
 
             case :
                 int groupPosition = (Integercookie;
                 .setChildrenCursor(groupPositioncursor);
                 break;
             }
         }
     }
 
     public class MyExpandableListAdapter extends SimpleCursorTreeAdapter {
 
         // Note that the constructor does not take a Cursor. This is done to avoid querying the 
         // database on the main thread.
         public MyExpandableListAdapter(Context contextint groupLayout,
                 int childLayoutString[] groupFromint[] groupToString[] childrenFrom,
                 int[] childrenTo) {
 
             super(contextnullgroupLayoutgroupFromgroupTochildLayoutchildrenFrom,
                     childrenTo);
         }
 
         @Override
         protected Cursor getChildrenCursor(Cursor groupCursor) {
             // Given the group, we return a cursor for all the children within that group 
 
             // Return a cursor that points to this contact's phone numbers
             Uri.Builder builder = ..buildUpon();
             ContentUris.appendId(buildergroupCursor.getLong());
             builder.appendEncodedPath(..);
             Uri phoneNumbersUri = builder.build();
 
             .startQuery(groupCursor.getPosition(), phoneNumbersUri
                     . + "=?"
                     new String[] { . }, null);
 
             return null;
        }
    }
    private QueryHandler mQueryHandler;
    private CursorTreeAdapter mAdapter;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Set up our adapter
         = new MyExpandableListAdapter(
                this,
                android.R.layout.simple_expandable_list_item_1,
                android.R.layout.simple_expandable_list_item_1,
                new String[] { . }, // Name for group layouts
                new int[] { android.R.id.text1 },
                new String[] { . }, // Number for child layouts
                new int[] { android.R.id.text1 });
        setListAdapter();
         = new QueryHandler(this);
        // Query for people
                . + "=1"nullnull);
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        // Null out the group cursor. This will cause the group cursor and all of the child cursors
        // to be closed.
        .changeCursor(null);
         = null;
    }
New to GrepCode? Check out our FAQ X