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をタップしたときにダイアログを出さないようにする事が出来ましたー。
※参考