AndroidタッチパネルによるXMLフォーム処理におけるグループ・アイテムの展開ができるExpandableListの課題
現在Android実装用XMLフォーム処理アプリケーションプラットフォームの開発を行っています。
このプラットフォームでのデフォルト・ビューはEditText、ListView、Buttonの3種類でフォームを構成させ、
そのためにListViewは重要なビューとなっています。
プラットフォーム開発に必要なListViewの機能と、フォーム処理用ListViewのコンセプトは以下のようなものです。
1 フォームの主レイアウトに子ビューとして配置できること。
2 選択されたリスト項目の表示手段を備えること。
4 リストスクロールをしなくても、特に複数項目の選択の場合に、選択された項目を確認できる手段を備えること。
3 ブラウズモードだけではなく、エディットモードにも対応できること。
5 リスト配置位置、リストサイズ、表示行数、項目高、項目背景色/文字色、単一選択/複数選択、グラフィック・アイコンを自由にデザインできるこ
と。
6 キー処理、タッチパネル処理で同等の機能を備え、それらの組合せ処理も可能とすること。
7 ページスクロールと独立して、リスト内項目のタッチパネルスクロールが可能であること。
8 片手、親指操作を基本とすること。
9 タッチパネル、キー処理共に項目の多いリストの場合にリスト途中からリストをクローズさせ、次のフォーカスへの移動を可能とすること。
ExpandableListには活用性が高いですが、Android ExpandableListはExpandableListActivity
で ExpandableListAdapterを設定する方式でフォームの主レイアウトに子ビューとして配置できず、また上記関して現
Android ExpandableListは対処できず、カスタマイズが必要となります。
また現在まで数種類のカスタムリストを作りましたが、1 リスト途中からの他ビューへのフォーカス移動手段、2 タッチパネルによる項目移動後に、キー
により移動を行うと、タッチパネルによる移動前の項目にフォーカスが戻ってしまう、3 リストのドロップダウンボタン、クローズボタンが片手、親指で操
作しにくいという課題が見つかっていること、4 リストスクロールをしなくても選択された複数項目の確認手段を備えるためにカスタムリストの再構築を行
いました。
以下にその具体例を記載しています。
http://homepage2.nifty.com/frpunion/uForms/XML/android09-1.html
記載しているカスタムリストの内容
1 選択済を識別できるCheckBox、 RadioButtonを備えた①singlelist ②multilist
全カスタムリスト共通に設定できるプロパティ リスト名、ソース配列(単一配列/Expansion用配列)、リストX/Yオフセット位置、
リスト幅、項目高、表示行数、単一/複数選択、フォントサイズ、項目背景色/文字色、デバイダー幅/色
*トップ・パディングはフォント高により自動設定
2 グループ項目の展開を可能とした①expandsingle ②expandmulti
Expansion用配列例
public static String[] group = { "01北海道地方","02東北地方","03関東地方","04中部地
方","05近畿地方","06中国地方","07四国地方","08九州地方" };
public static String[][] child = {
{ "01北海道" },
{ "02青森県","03岩手県","04宮城県","05秋田県","06山形県","07福島県" },
{ "08茨城県","09栃木県","10群馬県","11埼玉県","12千葉県","13東京都","14神奈川県" },
{ "15新潟県","16富山県","17石川県","18福井県","19山梨県","20長野県","21岐阜県","22静岡
県","24愛知県" },
{ "25三重県","26滋賀県","27京都府","28大阪府","29兵庫県","30奈良県","31和歌山県" },
{ "32鳥取県","33島根県","34岡山県","35広島県","36山口県" },
{ "37徳島県","38香川県","39愛媛県","40高知県" },
{ "41福岡県","42佐賀県","43長崎県","44熊本県","45大分県","46宮崎県","47鹿児島県","48沖縄
県" }};
3 ドロップダウン機能を備えた①dropsingle ②dropmulti
4 項目テキストのみの単純な①simplesingle ②simplemulti
5 フォームの全項目、入力方法、入力内容、データ入力済/未入力を表示し、選択した項目へ直接移動できる①indexlist
リスト項目最初のカラー・アイコンは入力方法を識別するためのもので、XMLフォーム処理の入力方法には、
[キー入力][選択入力][自動入力][事前入力][計算結果入力][事後入力]の6種類があります。
リスト見出部にはカーソル箇所の項目内用を表示します。
タッチパネルフォーム処理に関して現在残っているListViewの課題が正式版(バージョン1.0)でも未解決ならば、XMLフォーム処理用として
Android SDKは、それ単独では使用できません。