package com.newsrob.preference; import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.LinearLayout.LayoutParams; public class ListPreference extends android.preference.ListPreference { private static int VALUE_ID = 999; public ListPreference(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onBindView(View view) { super.onBindView(view); TextView tv = (TextView) view.findViewById(VALUE_ID); try { if (tv != null) tv.setText("«" + getEntry().toString().replace('\n', ' ') + "»"); } catch (NullPointerException npe) { // } } @Override protected View onCreateView(ViewGroup parent) { View v = super.onCreateView(parent); ViewGroup vg = (ViewGroup) v.findViewById(android.R.id.summary).getParent(); TextView tv = new TextView(vg.getContext()); tv.setId(VALUE_ID); android.widget.RelativeLayout.LayoutParams rlp = new android.widget.RelativeLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); rlp.addRule(RelativeLayout.BELOW, android.R.id.summary); tv.setLayoutParams(rlp); vg.addView(tv); return v; } @Override public void setValue(String value) { super.setValue(value); notifyChanged(); } }