aがクリックさAlertDialog
れたときにメッセージを表示しようとしています。SwitchPreference
を使用しようとしましthis
たが、エラーが発生しました。コンストラクターAlertDialog.Builder(Settings)が未定義です。そこで使用getActivity()
しましたが、この方法では何も表示されません。
また、プリファレンスの選択とボックスのチェックの選択の間でさまざまなアクションを実行する方法を知っている人はいますか。いくつかの設定で設定テキストをクリックすると説明が表示されるので、小さなボックスをクリックして実際に有効/無効にする方法を知っています。
public class Settings extends PreferenceFragment implements OnSharedPreferenceChangeListener{
Bundle savedInstanceState;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
this.savedInstanceState = savedInstanceState;
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if (key.equals("this")) {
final SwitchPreference sp = (SwitchPreference) getPreferenceScreen().findPreference(key);
if (sp.isChecked()) {
System.out.println("enabled");
} else {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage("blah...")
.setTitle("Title")
.setPositiveButton("proceed", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
System.out.println("positive");
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
sp.setChecked(true);
System.out.println("cancled");
}
})
.create();
}
}
}