以编程方式更改SettingsActivity小部件的文本

时间:2012-12-27 16:55:19

标签: android android-widget android-activity

我正在开发我的第一个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);

但这只会让我无效!

1 个答案:

答案 0 :(得分:0)

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

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

从中获取View并不容易,而且通常没有必要。您可以尝试在其上使用getView(),但这可能会也可能不会返回您想要的内容。

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

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

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