我想在共享首选项中显示一个编辑框,该编辑框应该只为用户读取,但我应该可以通过代码更改它。怎么实现这个?
答案 0 :(得分:3)
此tutorial适用于创建偏好设置。
此外,如果要更改PreferenceActivity
之外的首选项,则应使用编辑器
例如:
Editor e = PreferenceManager.getDefaultSharedPreferences(getBaseContext()).edit();
e.putString("yourPreference", "default value");
e.commit();
我希望它有所帮助
此外,正如here中的文档所示,PreferenceActivity
用于显示首选项的视觉样式。此外,正如同一链接中所示,“当用户与他们互动时,首选项会自动保存到SharedPreferences
”。
因此,知道这一点,如果您不希望用户修改该偏好设置,您可以在TextView
中使用EditText
或PreferenceActivity
非/可修改,并且然后使用上面的代码在PreferenceActivity
之外修改它。
我希望有所帮助。
答案 1 :(得分:2)
你想要的是TextView。 EditText是一个TextView子类,默认情况下由用户可编辑。因此,您设置TextView,用户无法修改它,您可以使用
设置文本TextView tv = new TextView(this);
tv.setText("");
答案 2 :(得分:2)
您使用的是标准PreferenceActivity
吗?如果是这样,您应该能够转到您的首选项XML文件,并将android:enabled="false"
设置为您想要只读的文件。
答案 3 :(得分:0)
我希望你应该首先显示共享pref的值,并在文本框布局中使用android:editable="false"
。此代码不允许用户修改编辑框中的文本。
答案 4 :(得分:0)
您可以显示不可编辑文本的一种方法是使用标准首选项并设置它的摘要(在首选项标题下显示的小文本)。
<Preference
android:key="text_preference"
android:selectable="false"
android:title="Title" />
Preference textPreference = (Preference) getPreferenceManager().findPreference("text_preference");
textPreference.setSummary("Text");
答案 5 :(得分:-1)
在XML中试试这个: android:selectable =“false”