7

ユーザーのPreferenceActivityを使用して、アプリケーションの特定の設定を定義しています。

また、OnPreferenceChangeListenerインターフェイスを使用して、変更された設定の通知を取得しています。そのコールバック内で、ユーザーの入力の検証を行うことができ、ユーザーの入力を拒否する際の更新を決定できます。

検証エラーを検出したら、画面上で設定編集ダイアログボックスをアクティブにして、.getTextEdit()。setError()メソッドを使用してエラーメッセージを設定し、ユーザーに通知できるようにします。ただし、OnPreferenceChangeListenerコールバックが実行される直前にダイアログボックスが消えたように見えるため、画面上でダイアログボックスをアクティブに保つことができませんでした。

何か案は?

4

1 に答える 1

1

さて、Android dev に書かれているように、ユーザーが編集を完了する前に使用するイベントはありません。

インターフェイスには、onSharedPreferenceChanged() というコールバック メソッドが 1 つだけあります。

私がすることは、カスタム設定を実装することです ( http://developer.android.com/guide/topics/ui/settings.html#Customで説明されているように)。ただし、DialogPreference を拡張する代わりに、EditTextPreference を拡張します。テストはしていませんが、動作するはずです。幸運を :)

于 2012-09-28T10:33:27.523 に答える