PreferenceFragmentの評価
Preference情報を基調としているPreferenceFragmentの評価はどうなのだろうか。
CheckBoxPreference等ごく限られた道具しかない。データの出し入れに特化したものだ。画面表示関係には弱い。
例えば、PreferenceScreenにButtonを配置したい場合、どうするのか。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
Preference preferenceButton = findPreference("PreferenceScreen_btnClose");
preferenceButton.setLayoutResource(R.layout.preference_button);
preferenceButton.setOnPreferenceClickListener(this);
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override
public boolean onPreferenceClick(Preference preference){
if(preference==findPreference("PreferenceScreen_btnClose")){
//ここでButton押し下げ関係処理をする
return true;
}
return false;
}
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
>
<Preference
android:key="PreferenceScreen_btnClose"
>
</Preference>
</PreferenceScreen>
R.layout.preference_button
<?xml version="1.0" encoding="utf-8"?>
<Button
xmlns:android="http://schemas.android.com/apk/res/android"
android:text="@string/aaaa"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="false"(必要)
android:focusable="false"(必要)
android:drawableStart="@android:drawable/ic_menu_close_clear_cancel"
android:focusable="false"(必要)
android:drawableStart="@android:drawable/ic_menu_close_clear_cancel"
>
</Button>
単純にクリックするだけであれば悩まない。
複雑なViewGroupを表示・操作したい場合どうするのか。
Preferenceを拡張して行うということである。職人技ですね。普通のプログラマーが自力だけでこのコードを書けるとは思えない。
「複雑な形状のViewの表示は別途画面を設けてください」というのが、本システム設計者の考え方かもしれない。
「複雑な形状のViewの表示は別途画面を設けてください」というのが、本システム設計者の考え方かもしれない。
0 件のコメント:
コメントを投稿