Dictionary<string,dobby>
mindiaDictionary<string,dobby>単語

View

dobby · 2010-03-24 更新 · 履歴(7)
第 5 版(2010-02-23 23:20:35 · dobby)を表示しています。 最新版に戻る

View

ここにおけるViewとはAndroidのViewのこと。
Androidアプリのコントロール群がひととおりおさめられているpackage。

リストビューのカスタマイズ

1.リスト用のXMLを用意。
2.ArrayAdapterをオーバーライドして専用のアダプタを作成する。
3.getViewオーバーライドで各情報をviewに対して設定していく
アダプタのオーバーライドが肝かなー。
http://labs.techfirm.co.jp/android/cho/751

リストビュー内にクリックを前提としたコントロールを追加

追加するとOnItemClickListenerが働かなくなるので注意。回避方法としては、リスト内に追加したクリッカブルコントロールのFocusableをfalseに設定すること。これでOnItemClickも内部に設定したコントロールもイベントをとれる。

ImageView

setImageUriはHTML経由の画像は使えない。
HTTPを経由する場合<span style="font-weight: bold">setImageDrawable(Drawable drw)</span>
ちなみに引数のDrawableクラスは<span style="font-weight: bold">Drawable.createFromStream(new URL("URL").openStream(),"Name")</span>で作成
http://d.hatena.ne.jp/iRSS/20100102/1262444905

WebViewクラス

loadData()メソッドでは特殊文字は表示されない。バグ。
loadDataWithBaseURL()こちらのメソッドを使用すれば問題なく表示される。
http://www.taosoftware.co.jp/blog/2009/01/android_webview_loaddata.html

ExpandableListViewクラス

カスタムアダプタ作成

BaseExpandableListAdapterをextendsして作成する。子アイテムはgetChildView()が呼ばれてView作成。親アイテムはgetGroupView()が呼ばれて作成される。
あと注意点としてはisChildSelectable()がOverrideとして追加された初期ではfalseを返すようになっている。子アイテムにもSelectedイベントを付加させたい場合はここはtrueを返すようにすること。

ExpandableListViewActivityクラスでコンテキストメニュー

1.コンストラクタ辺りでコンテキストメニューを表示するビューを設定する。registerForContextMenu(getExpandableListView());
2.onCreateContextMenu(コンテキスト表示前のイベント)とonContextItemSelected(コンテキスト表示終了時イベント)をオーバーライドする。

しかし選択されているアイテムの取り方がExpandableだけにちょっと特殊。引数のMenuInfoもしくはMenuItemからgetMenuInfo()を受け取りExpandableMenuInfoにキャストしておく。ListViewのgetPackedPositionTypeから選択しているアイテムが親アイテムか子アイテムかを判別。その後先程のExpandableMenuInfoにあるpackedPositionを引数にするgetPackedPositionGroup()もしくはgetPackedPositionChild()を使って各ポジションを得る。長いよ。

履歴

タグ