【Android】PreferenceFragmentのアイテムをロングクリック出来るようにする

私が公開しているアプリ Nメモ ではPreferenceFragmentで設定画面を作っています。
本来ならばタイトルやsummaryで設定内容が分かるようにするのが良いのでしょうが、
あまり長い説明を入れると設定画面でたくさんスクロールが必要になってしまい不便だと思ったので、今回はロングクリックでダイアログに説明を出すようにしました。

// PreferenceFragmentを継承したクラス内
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
	super.onViewCreated(view, savedInstanceState)
	
	val preferenceList = view?.findViewById(android.R.id.list) ?: return

	preferenceList.setOnItemLongClickListener { _, _, position, _ ->
		val listAdapter = preferenceList.adapter
		val item = listAdapter.getItem(position)
		if (item is Preference) {
			when(item.key) {
				// ここにPreferenceのKey毎に処理を書く
			}
			true
		} else {
			false
		}
	}
}
スポンサーリンク

フォローする