我正在开发我的第一个Android应用程序。 我使用向导创建了一个SettingsActivity,到目前为止工作正常。 现在我想以编程方式更改输入字段:我正在生成一个字符串,我想在输入字段中默认预设。
这是我的输入字段,它是自动生成的pref_general.xml中的条目:
<EditTextPreference
android:capitalize="words"
android:defaultValue="@string/pref_default_display_name"
android:inputType="textCapWords"
android:key="example_text"
android:maxLines="1"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="@string/pref_title_display_name" />
我的问题是:如何在代码中访问此输入字段? 通常我使用
请求UI元素findViewById(R.*.*);
我假设我可以使用
findViewById(R.string.pref_default_display_name);
但这只会让我无效!
答案 0 :(得分:0)
根据您正在做的事情,您可以使用findPreference()
获取EditTextPreference
对象:
EditTextPreference pref = myPrefGroup.findPreference("example_text");
从中获取View
并不容易,而且通常没有必要。您可以尝试在其上使用getView()
,但这可能会也可能不会返回您想要的内容。
如果您只想设置EditTextPreference
的输入值,可以使用setText()
,就像使用任何EditText
一样:
EditTextPreference pref = myPrefGroup.findPreference("example_text");
pref.setText("Foo!");
您可以查看其他Preference
和EditTextPreference
在所提供的文档中可以执行的操作,但有些事情在首选项屏幕中无法完成。 (这只是Android的限制。)