1

私は sharedpreferences フレームワークを使用していますが、設定の 1 つを操作するのに少し問題があります。オプションの 1 つを有効にしてアプリをリセットしたいと考えています。これを行うには、[OK] と [キャンセル] を含むダイアログ ボックスを画面に表示します。ユーザーが [OK] をクリックすると、私はたくさんのことをしたいと思います。

ImageView リスナーを使用して、通常のアクティビティでこれらすべてを記述できます。しかし、SharedPreferences フレームワークでは、リスナーとアクションを追加する方法がわかりません。追加のボーナスとして、現在の SharedPreferences 状態も操作する必要があると思いますか?

現時点で私はこのXMLを持っています

<PreferenceCategory  android:title="Reset App">

    <Preference
        android:title="Reset App?"
        android:summary="Click here to reset the App to defaults."
        android:key="resetapp" />

</PreferenceCategory>


<PreferenceCategory  android:title="General Settings">
 <CheckBoxPreference
         android:title="Enable Sounds?"
         android:defaultValue="true"
         android:summary="A Tick here will enable sounds throughout body-mix-ology."
         android:key="enablesounds" />
 <CheckBoxPreference
         android:title="High performance Phone?"
         android:defaultValue="false"
         android:summary="If you have a high performance phone tick here to speed up body switching."
         android:key="highperformancephone" />
  </PreferenceCategory>

これが私のクラスファイルです

public class Preferences extends PreferenceActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.layout.preferences);

        //TODO
        // act on resetapp
        // prompt onscreen confirmation.

    }

    public AlertDialog createDialog() {

        return new AlertDialog.Builder(this)
        .setTitle("Reset App?")
        .setMessage("Are you sure? You will wipe all data from the app.")
        .setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {
                Toast.makeText(getBaseContext(), "App has been reset!", Toast.LENGTH_SHORT).show();
                //TODO
                // clear DB
                // reset sharedprefs.
            }
        })
        .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {

                Toast.makeText(getBaseContext(), "App was not reset", Toast.LENGTH_SHORT).show();

            }
        })
        .show();

   }


}
4

1 に答える 1