レイアウトの取得方法


レイアウトファイル(XML)で作成したレイアウトにプログラム上からViewオブジェクトを追加する必要が生じました.具体的に言うとAdMob広告を表示するための”AdView”,”TextView”をレイアウトファイルで定義し,プログラム上から”GLSurfaceView”を追加するというものです.いろいろと試してみた結果,次のように行うと良いようです.

レイアウトにIDを振る

レイアウトファイルから各要素を取得するにはfindViewById()を使います.例えばLinearLayoutクラスもViewクラスから派生しているので同じくfindViewById()で取得出来そうです.ただ,デフォルトではレイアウトにはIDが振られないため取得することが出来ません.そのため手動でIDを振ってやります.”Outline”ウィンドウからレイアウトを選択し,”Property”ウィンドウの”Properties”タブの項目”Id”に”@+id/LinearLayout”などと適当なIDを振ります.

レイアウトを取得する

このようにすると次のようにしてレイアウトを取得することが出来るようになります.

LinearLayout layout = (LinearLayout)findViewById(R.id.LinearLayout);

CSVファイルからのHTMLファイル生成


CSVファイルから大量のHTMLファイルを生成するためのプログラムを作成した際に役に立った情報をまとめておきます.

Visual Editor

Eclipse用のGUIプラグインです.とても使い易く,始めてでしたがweb上のチュートリアル記事を参考にしただけで普通に使うことが出来るようになりました.ただ,インストールにとても手間取ってしまいました(これは私がEclipseに慣れていないことが問題だったかもしれません).ちなみにEclipseのバージョンはGalileo,VEは1.4です.

インストールは以下のサイトを参考にダウンロード先を指定して下さい.

VE/Update

そうすると,いくつかのインストール項目が表示されるのですが全てにチェックはせずに”Visual Editor”だけにチェックをいれるようにします(私はここでハマりました).何事もなければこれでインストールは完了するはずです.

ファイルダイアログで複数の拡張子を対象にする

ファイルダイアログで複数の拡張子でフィルタリングしたい場合は”|;”で区切って並べることで実現出来ます.例えば”.htm”と”.html”でフィルタリングしたい場合は

String[] EXTENSIONS = { "*.htm|;*.html" };
FileDialog dlg = new FileDialog(shell, SWT.OPEN);
dlg.setFilterExtensions(EXTENSIONS);
dlg.open();

のようにすることで実現出来ます.

ディレクトリを選択させる

ディレクトリを選択させたい場合は”DirectoryDialog”というクラスがあるので,それを使うことで実現出来ます.

DirectoryDialog dlg = new DirectoryDialog(shell);
dlg.open();

ディレクトリ以下をコピーする

ディレクトリ以下のファイルやディレクトリを再帰的にコピーしたい場合,Javaにはそういった手段が無いようです.そのため”cp”などのシステムコールを利用するか,自前で再帰的にコピーするしかないようです.私はシステム依存にしたくなかったので,自前でコピーするようにしました.

CSVの正規表現による値抽出

CSVの値抽出は,真面目にやろうとすると意外に面倒です.私の場合はJavaに不慣れなこともあって正規表現の書き方も良く分かりませんでした.そんな状況で,以下のサイトが非常に役に立ちました.

CSVのための正規表現