0

我正在开发我的第一个安卓应用程序。我使用向导创建了一个 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);

但这只会给我null!

4

1 回答 1

0

根据您正在做的事情,您可以使用findPreference() 来获取EditTextPreference对象:

EditTextPreference pref = myPrefGroup.findPreference("example_text");

从中获得 aView并不容易,而且通常没有必要。您可以尝试使用getView()它,但这可能会或可能不会返回您想要的内容。

如果您只想设置 的输入值EditTextPreference,您可以使用setText()它,就像使用 any 一样EditText

EditTextPreference pref = myPrefGroup.findPreference("example_text");
pref.setText("Foo!");

您可以查看提供的文档中的其他内容PreferenceEditTextPreference可以执行的操作,但有些操作无法在首选项屏幕中完成。(这只是 Android 的限制。)

于 2012-12-27T17:44:40.610 回答