私は自分のレイアウトを持っています。
レイアウトのポジティブボタンをクリックした後、editTextからテキストを受け取りたいのですが。しかし、onPreferenceChangeでは、常にデフォルト値のみを取得します。
どういうわけか自分のEditTextを設定にバインドする必要があるようですが、これを行う方法と場所がわかりません。
誰か助けてもらえますか?
私は自分のレイアウトを持っています。
レイアウトのポジティブボタンをクリックした後、editTextからテキストを受け取りたいのですが。しかし、onPreferenceChangeでは、常にデフォルト値のみを取得します。
どういうわけか自分のEditTextを設定にバインドする必要があるようですが、これを行う方法と場所がわかりません。
誰か助けてもらえますか?
私自身の質問に答えるには:
まず、PreferenceScreenで、次のように指定する必要があります。<full.path.to.your.OwnLayoutClass android:name = "whatevever" android:dialogLayout = "@ layout / your_own_layout" />
your_own_layoutは、必要に応じて、ボタン付きのlinearlayout、editTextsなど、好きなものにすることができます。
Essentialは、独自の設定ダイアログを表すクラスです。これを行う方法の簡単な例を次に示します。
public class YourOwnLayoutClass extends DialogPreference {
private LinearLayout mView;
public YourOwnLayoutClass(Context context, AttributeSet attrs) {
super(context, attrs);
setPersistent(false);
setDialogLayoutResource(R.layout.your_own_layout);
}
@Override
protected void onBindDialogView(View view) {
super.onBindDialogView(view);
mView = (LinearLayout) view;
}
@Override
protected void onDialogClosed(boolean positiveResult) {
super.onDialogClosed(positiveResult);
if (positiveResult) {
// get value from editFields, do whatever you want here :)
// you can acces them through mView variable very easily
}
}
}
重要な参考資料: [設定]にカスタムダイアログが必要です