0

私は自分のレイアウトを持っています。

レイアウトのポジティブボタンをクリックした後、editTextからテキストを受け取りたいのですが。しかし、onPreferenceChangeでは、常にデフォルト値のみを取得します。

どういうわけか自分のEditTextを設定にバインドする必要があるようですが、これを行う方法と場所がわかりません。

誰か助けてもらえますか?

4

1 に答える 1

2

私自身の質問に答えるには:

まず、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
        }
    }
}

重要な参考資料: [設定]にカスタムダイアログが必要です

新しいDialogPreferenceクラスを作成する簡潔な方法は?

Android:PreferenceActivityからカスタム設定を起動します

于 2012-09-05T10:46:00.223 に答える