我觉得我必须遗漏一些东西,但我只是看不出它是什么......我有一个PreferenceActivity
有一堆各种偏好(有些是列表,有些只是文本字段)并且它一切正常,但除非我明确地将每个项目的值写入摘要(显然不是为此目的),我不知道项目如何(或在哪里)显示它们当前设置的内容。当我点击它们时,各种视图显示正确的设置,但这显然不是意图。
我是否必须创建自己的某种自定义List项目,其中包含一个显示每个元素当前填充值的字段?
答案 0 :(得分:2)
不幸的是,默认的PreferencesActivity不会显示值:如果你想要显示所有首选项一目了然,那么你正在做的事情就是这样。
答案 1 :(得分:2)
如果您仍想沿着编程方向前进,请查看此主题:How do I display the current value of an Android Preference in the Preference summary?
那里有一切。
答案 2 :(得分:1)
创建另一个首选项字段:摘要。 更新首选项字段或显示首选项屏幕时更新它。 用户将能够“更新”汇总值,但只要他/她输入首选项,就会显示正确的值。
答案 3 :(得分:0)
对于list1 = yourListOfElements
for elem in list1:
try: # Needs try/except otherwise last iteration would throw an indexerror
listaAUX = [] # Auxiliar list to check length and join smaller elements. You can probably eliminate this using list slicing
listaAUX.append(elem)
listaAUX.append(list1[list1.index(elem)+1])
if len(listaAUX[0]) + len(listaAUX[1]) < 30:
concatenated = '/'.join(listaAUX)
print(concatenated)
else:
print(elem)
except IndexError:
print(elem)
,这是内置的,您可以使用
ListPreferences
对于android:summary="Actual value: %s"
,您可以easily create your own class:
EditTextPreferences
并在xml中使用它:
package your.package.preference; import android.content.Context; import android.util.AttributeSet; public class EditTextPreference extends android.preference.EditTextPreference{ public EditTextPreference(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public EditTextPreference(Context context, AttributeSet attrs) { super(context, attrs); } public EditTextPreference(Context context) { super(context); } @Override public CharSequence getSummary() { String summary = super.getSummary().toString(); return String.format(summary, getText()); } }