summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorFabrice Di Meglio <fdimeglio@google.com>2014-04-07 19:12:41 -0700
committerFabrice Di Meglio <fdimeglio@google.com>2014-04-08 13:22:07 -0700
commit53c2cf799fddfae7f6fc9ca1840ea345308b79ee (patch)
tree125c2455745d8c2a100fbf36ffdbf15e35d8a238 /core
parent19de4ffff3c9ebca70694b55b9784afe86f5c11b (diff)
downloadframeworks_base-53c2cf799fddfae7f6fc9ca1840ea345308b79ee.zip
frameworks_base-53c2cf799fddfae7f6fc9ca1840ea345308b79ee.tar.gz
frameworks_base-53c2cf799fddfae7f6fc9ca1840ea345308b79ee.tar.bz2
Add support for saving and using the Preference's key value
- make public and hide the PreferenceGroupAdapter class - add setActivated(int position) to be able to set the activated item - udpate getView(int position, View convertView, ViewGroup parent) to set/unset the activated item Change-Id: I8a653ad6541bb6b7a043ba7c3d95e5ecad924a0d
Diffstat (limited to 'core')
-rw-r--r--core/java/android/preference/PreferenceGroupAdapter.java16
-rw-r--r--core/res/res/layout/preference_holo.xml3
2 files changed, 15 insertions, 4 deletions
diff --git a/core/java/android/preference/PreferenceGroupAdapter.java b/core/java/android/preference/PreferenceGroupAdapter.java
index 23d0a19..c2e1f51 100644
--- a/core/java/android/preference/PreferenceGroupAdapter.java
+++ b/core/java/android/preference/PreferenceGroupAdapter.java
@@ -45,8 +45,11 @@ import android.widget.ListView;
* adapter, use {@link PreferenceCategoryAdapter} instead.
*
* @see PreferenceCategoryAdapter
+ *
+ * @hide
*/
-class PreferenceGroupAdapter extends BaseAdapter implements OnPreferenceChangeInternalListener {
+public class PreferenceGroupAdapter extends BaseAdapter
+ implements OnPreferenceChangeInternalListener {
private static final String TAG = "PreferenceGroupAdapter";
@@ -88,6 +91,8 @@ class PreferenceGroupAdapter extends BaseAdapter implements OnPreferenceChangeIn
}
};
+ private int mActivatedPosition = -1;
+
private static class PreferenceLayout implements Comparable<PreferenceLayout> {
private int resId;
private int widgetResId;
@@ -207,6 +212,10 @@ class PreferenceGroupAdapter extends BaseAdapter implements OnPreferenceChangeIn
return this.getItem(position).getId();
}
+ public void setActivated(int position) {
+ mActivatedPosition = position;
+ }
+
public View getView(int position, View convertView, ViewGroup parent) {
final Preference preference = this.getItem(position);
// Build a PreferenceLayout to compare with known ones that are cacheable.
@@ -217,8 +226,9 @@ class PreferenceGroupAdapter extends BaseAdapter implements OnPreferenceChangeIn
if (Collections.binarySearch(mPreferenceLayouts, mTempPreferenceLayout) < 0) {
convertView = null;
}
-
- return preference.getView(convertView, parent);
+ View result = preference.getView(convertView, parent);
+ result.setActivated(position == mActivatedPosition);
+ return result;
}
@Override
diff --git a/core/res/res/layout/preference_holo.xml b/core/res/res/layout/preference_holo.xml
index 1cc803b..1b3ab86 100644
--- a/core/res/res/layout/preference_holo.xml
+++ b/core/res/res/layout/preference_holo.xml
@@ -23,7 +23,8 @@
android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical"
android:paddingStart="@dimen/preference_item_padding_side"
- android:paddingEnd="?android:attr/scrollbarSize">
+ android:paddingEnd="?android:attr/scrollbarSize"
+ android:background="?android:attr/activatedBackgroundIndicator">
<LinearLayout
android:layout_width="wrap_content"