Mega Code Archive

 
Categories / Android / UI
 

Dialog Multiple Choice Cursor

/*  * 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 app.test; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.app.ProgressDialog; import android.content.DialogInterface; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; import android.database.Cursor; import android.provider.ContactsContract; /**  * Example of how to use an {@link android.app.AlertDialog}.  * <h3>Test</h3> <p>This demonstrates the different ways the AlertDialog can be used.</p> <h4>Demo</h4> App/Dialog/Alert Dialog   <h4>Source files</h4>  * <table class="LinkTable">  *         <tr>  *             <td >src/com.example.android.apis/app/Test.java</td>  *             <td >The Alert Dialog Samples implementation</td>  *         </tr>  *         <tr>  *             <td >/res/any/layout/alert_dialog.xml</td>  *             <td >Defines contents of the screen</td>  *         </tr>  * </table>   */ public class Test extends Activity {     private static final int DIALOG_YES_NO_MESSAGE = 1;     private static final int DIALOG_YES_NO_LONG_MESSAGE = 2;     private static final int DIALOG_LIST = 3;     private static final int DIALOG_PROGRESS = 4;     private static final int DIALOG_SINGLE_CHOICE = 5;     private static final int DIALOG_MULTIPLE_CHOICE = 6;     private static final int DIALOG_TEXT_ENTRY = 7;     private static final int DIALOG_MULTIPLE_CHOICE_CURSOR = 8;     private static final int DIALOG_YES_NO_ULTRA_LONG_MESSAGE = 9;     private static final int DIALOG_YES_NO_OLD_SCHOOL_MESSAGE = 10;     private static final int DIALOG_YES_NO_HOLO_LIGHT_MESSAGE = 11;     private static final int MAX_PROGRESS = 100;          private ProgressDialog mProgressDialog;     private int mProgress;     private Handler mProgressHandler;     @Override     protected Dialog onCreateDialog(int id) {         switch (id) {         case DIALOG_MULTIPLE_CHOICE_CURSOR:             String[] projection = new String[] {                     ContactsContract.Contacts._ID,                     ContactsContract.Contacts.DISPLAY_NAME,                     ContactsContract.Contacts.SEND_TO_VOICEMAIL             };             Cursor cursor = managedQuery(ContactsContract.Contacts.CONTENT_URI,                     projection, null, null, null);             return new AlertDialog.Builder(Test.this)                 .setIcon(R.drawable.icon)                 .setTitle("R.string.alert_dialog_multi_choice_cursor")                 .setMultiChoiceItems(cursor,                         ContactsContract.Contacts.SEND_TO_VOICEMAIL,                         ContactsContract.Contacts.DISPLAY_NAME,                         new DialogInterface.OnMultiChoiceClickListener() {                             public void onClick(DialogInterface dialog, int whichButton,                                     boolean isChecked) {                                 Toast.makeText(Test.this,                                         "Readonly Demo Only - Data will not be updated",                                         Toast.LENGTH_SHORT).show();                             }                         })                .create();         }         return null;     }     /**      * Initialization of the Activity after it is first created.  Must at least      * call {@link android.app.Activity#setContentView(int)} to      * describe what is to be displayed in the screen.      */     @Override   protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         showDialog(DIALOG_MULTIPLE_CHOICE_CURSOR);         mProgressHandler = new Handler() {             @Override             public void handleMessage(Message msg) {                 super.handleMessage(msg);                 if (mProgress >= MAX_PROGRESS) {                     mProgressDialog.dismiss();                 } else {                     mProgress++;                     mProgressDialog.incrementProgressBy(1);                     mProgressHandler.sendEmptyMessageDelayed(0, 100);                 }             }         };     } }