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 android.os.Bundle;
20addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banesimport android.view.View;
21addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banesimport android.widget.Spinner;
22addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes
23def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport androidx.appcompat.app.AlertDialog;
24def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport androidx.appcompat.app.AppCompatActivity;
25def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikas
26def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport com.example.android.supportv7.Cheeses;
27def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport com.example.android.supportv7.R;
28def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikas
29addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes/**
30addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes * This demonstrates idiomatic usage of AppCompat's AlertDialog.
31addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes */
32addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banespublic class AlertDialogUsage extends AppCompatActivity {
33addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes
34addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes    private Spinner mSpinner;
35addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes
36addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes    @Override
37addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes    protected void onCreate(Bundle savedInstanceState) {
38addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        super.onCreate(savedInstanceState);
39addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        setContentView(R.layout.alert_dialog_usage);
40addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes
41fa2e2acf79d791a90410025daad438968550d18cAlan Viverette        mSpinner = findViewById(R.id.spinner_dialogs);
42addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes
43addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        // Add an OnClickListener to show our selected dialog
44addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        findViewById(R.id.btn_show_dialog).setOnClickListener(new View.OnClickListener() {
45addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes            @Override
46addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes            public void onClick(View view) {
47addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes                showSelectedDialog();
48addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes            }
49addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        });
50addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes    }
51addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes
52addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes    private void showSelectedDialog() {
53addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        switch (mSpinner.getSelectedItemPosition()) {
54addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes            case 0:
55addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes                showSimpleDialog();
56addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes                break;
57addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes            case 1:
58addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes                showSimpleButtonsDialog();
59addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes                break;
60addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes            case 2:
61addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes                showSingleChoiceDialog();
62addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes                break;
63addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes            case 3:
64addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes                showMultiChoiceDialog();
65addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes                break;
66addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        }
67addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes    }
68addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes
69addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes    private void showSimpleDialog() {
70addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        AlertDialog.Builder b = new AlertDialog.Builder(this);
71addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        b.setTitle(R.string.dialog_title);
72addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        b.setMessage(R.string.dialog_content);
73addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        b.show();
74addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes    }
75addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes
76addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes    private void showSimpleButtonsDialog() {
77addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        AlertDialog.Builder b = new AlertDialog.Builder(this);
78addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        b.setTitle(R.string.dialog_title);
79addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        b.setMessage(R.string.dialog_content);
80addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        b.setNegativeButton("-ve", null);
81addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        b.setPositiveButton("+ve", null);
82addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        b.show();
83addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes    }
84addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes
85addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes    private void showSingleChoiceDialog() {
86addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        AlertDialog.Builder b = new AlertDialog.Builder(this);
87addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        b.setTitle(R.string.dialog_title);
88addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        b.setSingleChoiceItems(Cheeses.sCheeseStrings, 0, null);
89addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        b.setPositiveButton("OK", null);
90addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        b.show();
91addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes    }
92addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes
93addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes    private void showMultiChoiceDialog() {
94addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        AlertDialog.Builder b = new AlertDialog.Builder(this);
95addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        b.setTitle(R.string.dialog_title);
96addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        b.setMultiChoiceItems(Cheeses.sCheeseStrings, null, null);
97addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        b.setPositiveButton("OK", null);
98addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes        b.show();
99addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes    }
100addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes
101addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes
102addc9c21b354edf23330d87312ddf770d3e8ff1fChris Banes}
103