0

私は最初の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);

しかし、これは私にnullを与えるだけです!

4

1 に答える 1

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の制限です。)

于 2012-12-27T17:44:40.610 に答える