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