3

アプリの設定メニューを作成しましたが、メニューで設定がクリックされたときにアクティビティを開始するにはどうすればよいでしょうか? ユーザーが「パスワードの変更」というメニューバーをクリックして別のアクティビティを開始できるようにして、パスワードを入力し、新しいパスワードを入力し、その新しいパスワードを確認して、共有設定パスワードファイルを変更できるようにしたい. これを行うための他の簡単な方法があれば、ご意見をいただければ幸いです。ありがとう

4

1 に答える 1

7

独自の DialogPreference を作成しないのはなぜですか? 手順は次のとおりです。

1) ダイアログのレイアウトを XML で作成します。

2) Android フレームワークの DialogPreference クラスを独自のカスタム クラスで拡張します。

3)コンストラクターで、ダイアログのレイアウトを設定します

public CustomDialogPreference(Context context, AttributeSet attrs) {
    super(context, attrs);
    setDialogLayoutResource(R.layout.preference_dialog_number_picker);
}

4) onBindDialogView(View view) メソッドをオーバーライドし、レイアウト要素をコードにバインドします。SharedPreferences ファイルから現在のパスワード値を取得し、TextChangedListeners で検証を処理します。たとえば、ユーザーが新しいパスワードを確認しない場合は、エラーを表示します。

@Override
protected void onBindDialogView(View view) {
    // bind view
    mOldPass = (TextView) view.findViewById(R.id.old_pass);
            mNewPass = (TextView) view.findViewById(R.id.new_pass);
            mConfirmPass = (TextView) view.findViewById(R.id.confirm_pass);
            // get the current password from SharedPreferences
            // add text changed listener for handling validation
}

5) onClick(DialogInterface dialog, int which) メソッドをオーバーライドします。このメソッドは、ユーザーがダイアログのボタン (「OK」ボタンなど) をクリックしたときに呼び出されます。新しいパスワードを SharedPreferences ファイルに保存します。

@Override
public void onClick(DialogInterface dialog, int which) {
    switch (which) {
    case DialogInterface.BUTTON_POSITIVE:
        // save your new password here
        break;
    default:
        // do something else...
        break;
    }
}
于 2011-08-23T08:40:52.107 に答える