ListPreferenceをタップしたときのアクション
ListPreferenceをタップしたときにダイアログを出さない方法はないものかと色々調べたのでメモ。
ListPreferenceには、onPreferenceClickというクリックをしたら呼び出されるリスナーがあるのですが、これの戻り値をfalseにしてもtrueにしても、ダイアログが呼び出されてしまいます。
このダイアログを出したくない。
そんなときは、ListPreferenceを継承したカスタムListPreferenceを作ります。
こんな感じ。
public class MyPreference extends ListPreference {
private Context mContext;
private boolean showDialog = false;
public MyPreference(Context context) {
super(context);
this.mContext = context;
}
public MyPreference(Context context, AttributeSet attrs) {
super(context, attrs);
this.mContext = context;
}
public void setShowDialog(boolean showDialog){
this.showDialog = showDialog;
}
@Override
protected void showDialog(Bundle state) {
if (this.showDialog) {
super.showDialog(state);
} else {
return;
}
}
}
これで、無事にListPreferenceをタップしたときにダイアログを出さないようにする事が出来ましたー。
※参考