16904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler/* 26904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * Copyright (C) 2015 The Android Open Source Project 36904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * 46904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * Licensed under the Apache License, Version 2.0 (the "License"); 56904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * you may not use this file except in compliance with the License. 66904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * You may obtain a copy of the License at 76904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * 86904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * http://www.apache.org/licenses/LICENSE-2.0 96904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * 106904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * Unless required by applicable law or agreed to in writing, software 116904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * distributed under the License is distributed on an "AS IS" BASIS, 126904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * See the License for the specific language governing permissions and 146904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * limitations under the License 156904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler */ 166904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 176904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantlerpackage android.support.v7.preference; 186904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 196904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantlerimport android.content.Context; 206904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantlerimport android.content.res.TypedArray; 216904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantlerimport android.graphics.drawable.Drawable; 226904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantlerimport android.support.v4.content.ContextCompat; 2384765eaea7da18d0576db557959129e9d0db8e8cTony Mantlerimport android.support.v4.content.res.TypedArrayUtils; 246904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantlerimport android.util.AttributeSet; 256904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantlerimport android.view.View; 266904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 276904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler/** 286904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * A base class for {@link Preference} objects that are 296904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * dialog-based. These preferences will, when clicked, open a dialog showing the 306904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * actual preference controls. 316904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * 326904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @attr ref android.R.styleable#DialogPreference_dialogTitle 336904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @attr ref android.R.styleable#DialogPreference_dialogMessage 346904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @attr ref android.R.styleable#DialogPreference_dialogIcon 356904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @attr ref android.R.styleable#DialogPreference_dialogLayout 366904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @attr ref android.R.styleable#DialogPreference_positiveButtonText 376904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @attr ref android.R.styleable#DialogPreference_negativeButtonText 386904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler */ 396904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantlerpublic abstract class DialogPreference extends Preference { 406904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 416904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler public interface TargetFragment { 426904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler Preference findPreference(CharSequence key); 436904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler } 446904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 456904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler private CharSequence mDialogTitle; 466904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler private CharSequence mDialogMessage; 476904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler private Drawable mDialogIcon; 486904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler private CharSequence mPositiveButtonText; 496904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler private CharSequence mNegativeButtonText; 506904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler private int mDialogLayoutResId; 516904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 526904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler public DialogPreference( 536904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { 546904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler super(context, attrs, defStyleAttr, defStyleRes); 556904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 566904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler final TypedArray a = context.obtainStyledAttributes(attrs, 576904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler R.styleable.DialogPreference, defStyleAttr, defStyleRes); 5884765eaea7da18d0576db557959129e9d0db8e8cTony Mantler 5984765eaea7da18d0576db557959129e9d0db8e8cTony Mantler mDialogTitle = TypedArrayUtils.getString(a, R.styleable.DialogPreference_dialogTitle, 6084765eaea7da18d0576db557959129e9d0db8e8cTony Mantler R.styleable.DialogPreference_android_dialogTitle); 616904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler if (mDialogTitle == null) { 6284765eaea7da18d0576db557959129e9d0db8e8cTony Mantler // Fall back on the regular title of the preference 636904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler // (the one that is seen in the list) 646904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler mDialogTitle = getTitle(); 656904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler } 6684765eaea7da18d0576db557959129e9d0db8e8cTony Mantler 6784765eaea7da18d0576db557959129e9d0db8e8cTony Mantler mDialogMessage = TypedArrayUtils.getString(a, R.styleable.DialogPreference_dialogMessage, 6884765eaea7da18d0576db557959129e9d0db8e8cTony Mantler R.styleable.DialogPreference_android_dialogMessage); 6984765eaea7da18d0576db557959129e9d0db8e8cTony Mantler 7084765eaea7da18d0576db557959129e9d0db8e8cTony Mantler mDialogIcon = TypedArrayUtils.getDrawable(a, R.styleable.DialogPreference_dialogIcon, 7184765eaea7da18d0576db557959129e9d0db8e8cTony Mantler R.styleable.DialogPreference_android_dialogIcon); 7284765eaea7da18d0576db557959129e9d0db8e8cTony Mantler 7384765eaea7da18d0576db557959129e9d0db8e8cTony Mantler mPositiveButtonText = TypedArrayUtils.getString(a, 7484765eaea7da18d0576db557959129e9d0db8e8cTony Mantler R.styleable.DialogPreference_positiveButtonText, 7584765eaea7da18d0576db557959129e9d0db8e8cTony Mantler R.styleable.DialogPreference_android_positiveButtonText); 7684765eaea7da18d0576db557959129e9d0db8e8cTony Mantler 7784765eaea7da18d0576db557959129e9d0db8e8cTony Mantler mNegativeButtonText = TypedArrayUtils.getString(a, 7884765eaea7da18d0576db557959129e9d0db8e8cTony Mantler R.styleable.DialogPreference_negativeButtonText, 7984765eaea7da18d0576db557959129e9d0db8e8cTony Mantler R.styleable.DialogPreference_android_negativeButtonText); 8084765eaea7da18d0576db557959129e9d0db8e8cTony Mantler 8184765eaea7da18d0576db557959129e9d0db8e8cTony Mantler mDialogLayoutResId = TypedArrayUtils.getResourceId(a, 8284765eaea7da18d0576db557959129e9d0db8e8cTony Mantler R.styleable.DialogPreference_dialogLayout, 8384765eaea7da18d0576db557959129e9d0db8e8cTony Mantler R.styleable.DialogPreference_android_dialogLayout, 0); 8484765eaea7da18d0576db557959129e9d0db8e8cTony Mantler 856904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler a.recycle(); 866904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler } 876904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 886904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler public DialogPreference(Context context, AttributeSet attrs, int defStyleAttr) { 896904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler this(context, attrs, defStyleAttr, 0); 906904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler } 916904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 926904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler public DialogPreference(Context context, AttributeSet attrs) { 936904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler this(context, attrs, R.attr.dialogPreferenceStyle); 946904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler } 956904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 966904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler public DialogPreference(Context context) { 976904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler this(context, null); 986904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler } 996904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 1006904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler /** 1016904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * Sets the title of the dialog. This will be shown on subsequent dialogs. 1026904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * 1036904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @param dialogTitle The title. 1046904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler */ 1056904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler public void setDialogTitle(CharSequence dialogTitle) { 1066904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler mDialogTitle = dialogTitle; 1076904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler } 1086904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 1096904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler /** 1106904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @see #setDialogTitle(CharSequence) 1116904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @param dialogTitleResId The dialog title as a resource. 1126904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler */ 1136904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler public void setDialogTitle(int dialogTitleResId) { 1146904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler setDialogTitle(getContext().getString(dialogTitleResId)); 1156904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler } 1166904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 1176904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler /** 1186904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * Returns the title to be shown on subsequent dialogs. 1196904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @return The title. 1206904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler */ 1216904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler public CharSequence getDialogTitle() { 1226904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler return mDialogTitle; 1236904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler } 1246904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 1256904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler /** 1266904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * Sets the message of the dialog. This will be shown on subsequent dialogs. 1276904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * <p> 1286904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * This message forms the content View of the dialog and conflicts with 1296904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * list-based dialogs, for example. If setting a custom View on a dialog via 1306904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * {@link #setDialogLayoutResource(int)}, include a text View with ID 1316904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * {@link android.R.id#message} and it will be populated with this message. 1326904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * 1336904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @param dialogMessage The message. 1346904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler */ 1356904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler public void setDialogMessage(CharSequence dialogMessage) { 1366904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler mDialogMessage = dialogMessage; 1376904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler } 1386904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 1396904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler /** 1406904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @see #setDialogMessage(CharSequence) 1416904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @param dialogMessageResId The dialog message as a resource. 1426904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler */ 1436904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler public void setDialogMessage(int dialogMessageResId) { 1446904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler setDialogMessage(getContext().getString(dialogMessageResId)); 1456904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler } 1466904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 1476904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler /** 1486904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * Returns the message to be shown on subsequent dialogs. 1496904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @return The message. 1506904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler */ 1516904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler public CharSequence getDialogMessage() { 1526904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler return mDialogMessage; 1536904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler } 1546904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 1556904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler /** 1566904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * Sets the icon of the dialog. This will be shown on subsequent dialogs. 1576904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * 1586904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @param dialogIcon The icon, as a {@link Drawable}. 1596904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler */ 1606904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler public void setDialogIcon(Drawable dialogIcon) { 1616904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler mDialogIcon = dialogIcon; 1626904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler } 1636904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 1646904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler /** 1656904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * Sets the icon (resource ID) of the dialog. This will be shown on 1666904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * subsequent dialogs. 1676904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * 1686904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @param dialogIconRes The icon, as a resource ID. 1696904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler */ 1706904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler public void setDialogIcon(int dialogIconRes) { 1716904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler mDialogIcon = ContextCompat.getDrawable(getContext(), dialogIconRes); 1726904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler } 1736904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 1746904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler /** 1756904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * Returns the icon to be shown on subsequent dialogs. 1766904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @return The icon, as a {@link Drawable}. 1776904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler */ 1786904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler public Drawable getDialogIcon() { 1796904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler return mDialogIcon; 1806904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler } 1816904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 1826904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler /** 1836904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * Sets the text of the positive button of the dialog. This will be shown on 1846904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * subsequent dialogs. 1856904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * 1866904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @param positiveButtonText The text of the positive button. 1876904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler */ 1886904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler public void setPositiveButtonText(CharSequence positiveButtonText) { 1896904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler mPositiveButtonText = positiveButtonText; 1906904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler } 1916904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 1926904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler /** 1936904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @see #setPositiveButtonText(CharSequence) 1946904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @param positiveButtonTextResId The positive button text as a resource. 1956904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler */ 1966904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler public void setPositiveButtonText(int positiveButtonTextResId) { 1976904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler setPositiveButtonText(getContext().getString(positiveButtonTextResId)); 1986904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler } 1996904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 2006904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler /** 2016904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * Returns the text of the positive button to be shown on subsequent 2026904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * dialogs. 2036904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * 2046904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @return The text of the positive button. 2056904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler */ 2066904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler public CharSequence getPositiveButtonText() { 2076904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler return mPositiveButtonText; 2086904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler } 2096904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 2106904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler /** 2116904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * Sets the text of the negative button of the dialog. This will be shown on 2126904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * subsequent dialogs. 2136904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * 2146904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @param negativeButtonText The text of the negative button. 2156904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler */ 2166904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler public void setNegativeButtonText(CharSequence negativeButtonText) { 2176904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler mNegativeButtonText = negativeButtonText; 2186904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler } 2196904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 2206904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler /** 2216904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @see #setNegativeButtonText(CharSequence) 2226904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @param negativeButtonTextResId The negative button text as a resource. 2236904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler */ 2246904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler public void setNegativeButtonText(int negativeButtonTextResId) { 2256904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler setNegativeButtonText(getContext().getString(negativeButtonTextResId)); 2266904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler } 2276904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 2286904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler /** 2296904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * Returns the text of the negative button to be shown on subsequent 2306904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * dialogs. 2316904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * 2326904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @return The text of the negative button. 2336904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler */ 2346904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler public CharSequence getNegativeButtonText() { 2356904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler return mNegativeButtonText; 2366904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler } 2376904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 2386904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler /** 2396904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * Sets the layout resource that is inflated as the {@link View} to be shown 2406904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * as the content View of subsequent dialogs. 2416904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * 2426904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @param dialogLayoutResId The layout resource ID to be inflated. 2436904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @see #setDialogMessage(CharSequence) 2446904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler */ 2456904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler public void setDialogLayoutResource(int dialogLayoutResId) { 2466904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler mDialogLayoutResId = dialogLayoutResId; 2476904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler } 2486904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 2496904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler /** 2506904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * Returns the layout resource that is used as the content View for 2516904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * subsequent dialogs. 2526904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * 2536904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @return The layout resource. 2546904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler */ 2556904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler public int getDialogLayoutResource() { 2566904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler return mDialogLayoutResId; 2576904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler } 2586904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 2596904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler @Override 2606904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler protected void onClick() { 2616904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler getPreferenceManager().showDialog(this); 2626904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler } 2636904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler 2646904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler} 265