AlertDialogUsage.java revision fa2e2acf79d791a90410025daad438968550d18c
1addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes/* 2addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes * Copyright (C) 2015 The Android Open Source Project 3addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes * 4addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes * Licensed under the Apache License, Version 2.0 (the "License"); 5addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes * you may not use this file except in compliance with the License. 6addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes * You may obtain a copy of the License at 7addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes * 8addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes * http://www.apache.org/licenses/LICENSE-2.0 9addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes * 10addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes * Unless required by applicable law or agreed to in writing, software 11addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes * distributed under the License is distributed on an "AS IS" BASIS, 12addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes * See the License for the specific language governing permissions and 14addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes * limitations under the License. 15addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes */ 16addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes 17addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banespackage com.example.android.supportv7.app; 18addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes 19addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banesimport com.example.android.supportv7.Cheeses; 20addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banesimport com.example.android.supportv7.R; 21addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes 22addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banesimport android.os.Bundle; 23addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banesimport android.support.v7.app.AlertDialog; 24addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banesimport android.support.v7.app.AppCompatActivity; 25addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banesimport android.view.View; 26addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banesimport android.widget.Spinner; 27addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes 28addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes/** 29addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes * This demonstrates idiomatic usage of AppCompat's AlertDialog. 30addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes */ 31addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banespublic class AlertDialogUsage extends AppCompatActivity { 32addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes 33addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes private Spinner mSpinner; 34addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes 35addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes @Override 36addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes protected void onCreate(Bundle savedInstanceState) { 37addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes super.onCreate(savedInstanceState); 38addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes setContentView(R.layout.alert_dialog_usage); 39addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes 40fa2e2acf79d791a90410025daad438968550d18cAlan Viverette mSpinner = findViewById(R.id.spinner_dialogs); 41addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes 42addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes // Add an OnClickListener to show our selected dialog 43addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes findViewById(R.id.btn_show_dialog).setOnClickListener(new View.OnClickListener() { 44addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes @Override 45addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes public void onClick(View view) { 46addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes showSelectedDialog(); 47addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes } 48addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes }); 49addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes } 50addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes 51addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes private void showSelectedDialog() { 52addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes switch (mSpinner.getSelectedItemPosition()) { 53addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes case 0: 54addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes showSimpleDialog(); 55addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes break; 56addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes case 1: 57addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes showSimpleButtonsDialog(); 58addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes break; 59addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes case 2: 60addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes showSingleChoiceDialog(); 61addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes break; 62addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes case 3: 63addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes showMultiChoiceDialog(); 64addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes break; 65addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes } 66addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes } 67addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes 68addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes private void showSimpleDialog() { 69addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes AlertDialog.Builder b = new AlertDialog.Builder(this); 70addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes b.setTitle(R.string.dialog_title); 71addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes b.setMessage(R.string.dialog_content); 72addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes b.show(); 73addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes } 74addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes 75addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes private void showSimpleButtonsDialog() { 76addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes AlertDialog.Builder b = new AlertDialog.Builder(this); 77addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes b.setTitle(R.string.dialog_title); 78addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes b.setMessage(R.string.dialog_content); 79addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes b.setNegativeButton("-ve", null); 80addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes b.setPositiveButton("+ve", null); 81addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes b.show(); 82addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes } 83addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes 84addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes private void showSingleChoiceDialog() { 85addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes AlertDialog.Builder b = new AlertDialog.Builder(this); 86addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes b.setTitle(R.string.dialog_title); 87addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes b.setSingleChoiceItems(Cheeses.sCheeseStrings, 0, null); 88addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes b.setPositiveButton("OK", null); 89addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes b.show(); 90addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes } 91addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes 92addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes private void showMultiChoiceDialog() { 93addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes AlertDialog.Builder b = new AlertDialog.Builder(this); 94addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes b.setTitle(R.string.dialog_title); 95addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes b.setMultiChoiceItems(Cheeses.sCheeseStrings, null, null); 96addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes b.setPositiveButton("OK", null); 97addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes b.show(); 98addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes } 99addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes 100addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes 101addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes} 102