私は 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();
}
}