2011-01-01から1年間の記事一覧

wicket:id から、id の値に、、、

Wicket1.5 で wicket:id から、勝手に id の value を自動生成されてしまうのを防ぐには、、 wicket:id で記述した同じ値を id にセットするようにする。 例えば、<input wicket:id="name" type="text"/> なら、、 final TextField<String> name = new TextField<String>("name",new Model<String>()); name.setMarkupId(na</string></string></string>…

Android 画面向き

Android 画面向きを設定など。。。 (1) AndroidManifest.xml で設定 android:screenOrientation を指定 <activity android:name=".test.SampleActivity" android:screenOrientation="portrait"> android:screenOrientation="portrait" →縦向きに固定 android:screenOrientation="landscape" →横向きに固定 android:screenOrientation="nosensor" </activity>…

Android ローカルファイルは、バイナリで。。

先日書いたAndroid ローカルファイルへMapデータ保存は、Google GSONで JSON 形式データだった。 暗号化&バイナリでの保存の方がより解読しにくいであろうから、 JSON ではなく Mapのシリアライズから、暗号化してバイナリで保存しようと考えた。 import ja…

Android ローカル保存

Android のローカルファイルへの保存(/data/data/パッケージ/file/)への格納/読込み ファイルの中は暗号化で、Mapのように、Key-Value で管理したいと考えた。。。 ポイントは、ContextWrapper を継承すること。 暗号化するデータを1文の文字列にすること(…

Android ネットワーク接続チェック

Android 現在のネットワーク接続チェックの方法をするには、環境として uses-permission で、 android.permission.ACCESS_NETWORK_STATE が許可されてること。 実行は、android.net.ConnectivityManager から使用している android.net.NetworkInfo を取得し…

WebView の loadData

WebView の loadData(String data,String mimeType,String encoding) を使っていてだめだったのは、HttpClient で取得したコンテンツを指定したら、 完全には表示されなかった。 android.webkit.WebView.loadDataWithBaseURL(String baseUrl, String data, S…

Android タイトルバーを表示させない

タイトルバーを表示させない場合は以下のように、Activity onCreate で、requestWindowFeature で指定する。 import android.app.Activity; import android.os.Bundle; import android.view.Window; public class SampleActivity extends Activity{ @Overrid…

Android HttpClinet で、HTTPヘッダとコンテンツ

Android HttpClinet で、HTTP-Head とコンテンツを取得 import org.apache.http.Header; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; : : AndroidHttpClient client = AndroidHttpClient.newInstance("Android"); HttpRespo…

Wicket 1.5 のおさらい、getParameterValue

Wicket 1.5 のおさらい、HTTP GET/POST パラメータの受け取り方 // POST の場合、、、 IRequestParameters postParamerters = getRequestCycle().getRequest().getPostParameters(); for(String name : postParamerters.getParameterNames()){ String value …

Android ListView クリック時のハンドル

Android の ListView でクリック時の処理は、メソッド名文字どおり setOnItemClickListener で、android.widget.AdapterView.OnItemClickListener を 指定する。 public abstract void onItemClick(AdapterView parent,View view,int position,long id) 実装…

Android のバージョン番号

Android のバージョン番号、SDK番号などを取得するには android.os.Build.VERSION の static 変数を参照する。 int sdkNum = android.os.Build.VERSION.SDK_INT; String release = android.os.Build.VERSION.RELEASE; 例) RELEASE = 2.3.3 SDK_INT = 10

Android TextView で一部をリンク

Android TextView の一部文字列をリンクにする方法、 特に目新しいわけではないが、サンプルとして、、、 //SpanSampleActivity という Activity の onCreate の中で、、 final TextView textView = (TextView)findViewById(R.id.textViewId); String text =…

Android レイアウト 両端を揃える

Android レイアウト 両端を揃える場合、 LinearLayout orientation="horizontal" は、左→右方向に並べるので同じ行の中で 右→左にも配置をするには、工夫が必要だ。 layout_weight="1" を適切なところに配置する。 gravity を指定する。 サンプル

Android レイアウト 水平方向、均等な配置

Android のレイアウト、ボタンなどを均等に並べる場合 ポイントは、layout_width を match_parent に、 各部品の layout_weight を 1 にする。 例) <LinearLayout android:id="@+id/linearLayout1" android:layout_width="match_parent" android:layout_height="wrap_content" > </linearlayout>

ThreadGroup の uncaughtException をAOP

サブスレッドの例外を捕捉することができる ThreadGroup の uncaughtException をインターセプトしたら、 try~catch で記述しない例外捕捉しないまたは、throw された例外を共通で記述できるのでは? と思い立って書いてみる。 ThreadGroup の uncaughtExce…

Android で mybatis ?

Android で、mybatis なんてありえないと思ってたけど、それでもやろうという人はいるみたい。。 http://code.google.com/p/abatis/ これから注目しよう。 http://code.google.com/p/mybatis/ の中にあるわけでもないので、 別プロジェクトみたい。

Android  HTTP通信を AsyncTaskで

Android で、HTTP通信を、AsyncTask で実行 仕様は、、、 ・GET/POST 指定できること。 ・URLパラメータや POST の引数を指定できること。 ・ProgressDialog.STYLE_SPINNER を通信中に表示すること。 ・抽象メソッドで結果を受けて処理すること。 ・Progress…

AsyncTask 実行時 ProgressDialog の注意

AsyncTask 実行で ProgressDialog を表示するような場合、 java.lang.IllegalArgumentException: View not attahced to window manager を発生してしまうことがある。 これは、端末を回転させて方向をチェンジした時に発生する。 さんざん悩んだあげく、以下…

Android でHTTP通信の注意

Android 4.0 で、何も考慮せずに HTTP通信しようとすると強制停止されてできない。Android3.0 から そうなってる。 3.0 以降でもHTTP通信を実行したければ、スレッドでHTTP通信しなければならない。 AsyncTask を使うのが常套手段と思ったが、あえて Executo…

Android EditText の入力box が広がるのを回避

Android の EditText デフォルトのレイアウトでは、枠より長く入力すると折り返し枠が広がってしまう。 これを回避するために、

Wicket1.5.3 の guice - IOC で、Behaviorも対象に

Wicket1.5.3 の change Log から、番号 WICKET-4149 の wicket-ioc 機能追加を発見! コンポーネントだけでなく、ビヘビアの中もインジェクトを可能にする? 前に、JSR-330 未対応について、自分で以下を書いていた。。 http://blog.zaq.ne.jp/oboe2uran/art…

Wicket1.5 csv生成リンク

Wicket 1.5 で動的にCSVをダウンロードさせるリンク サンプル import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.request.handler.resource.ResourceStreamRequestHandler; import org.apache.wicket.request.resource.ContentD…

JSON を Wicket1.5 から出力

JSON データを Wikcet で出力するサンプル Google の GSON で書いてみた。 コンテンツタイプを、application/json と指定することになるようだ。 import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.request.handler.resource.Resou…

Google の JSONライブラリ。。。GSON

JSON 用 Java ライブラリは、JSONIC だけではない。 Google に、GSON というのがある。 http://code.google.com/p/google-gson/ JSONIC にちょっと似ているが、encode/decode は、static メソッドではない。 Gson gson = new Gson(); String str = gson.toJs…

JSONIC における java.util.Date

JSONIC のエンコード、デコードするデータに、java.util.Date を含めると、 JSON文字列は、1970 年 1 月 1 日 00:00:00 GMT からのミリ秒数 つまり java.util.Date の getTime() の結果のlong値になる。 {"date":1320852289822} みたいになる。 しかし、この…

Java で JSON 形式を使うなら、、

Java で JSON データを使うためのライブラリ http://jsonic.sourceforge.jp/index.html Maven の pom は、、 <dependency> <groupId>net.arnx</groupId> <artifactId>jsonic</artifactId> <version>1.2.7</version> </dependenc よく使いそうな、JSON のメソッド public static String encode(Object source) public static <T> T decode(Reader reader, Cla…

QRコードのデコード

JavaでQRコードをデコードする方法を探して見つけた。 http://qrcode.sourceforge.jp/ のライブラリにある QRCodeDecoder を使う。 これは、読む込んだQR画像データを java.awt.image.BufferedImage として扱うことで座標データを QRコード解析に渡す…

Google guava の Optional どう使う?

Google guava Release 10 で追加された com.google.common.base.Optional null の判断そして判定結果に基づく処理を書きやすくする? Optional は、コンストラクタを持たない、自らの static メソッドで生成する。 以下、3つのメソッドがある。 public stat…

csv4j をMavenでget

csv4j は、Maven のセントラルリポジトリにはないので、pom.xml に、以下、リポジトリの場所を 追加して持ってくる。 <repositories> <repository> <id>csv4j</id> <name>net.sf.csv4j</name> <url>http://repository.aduna-software.org/maven2> </repository> </repositories> <dependencies> : <dependency> <groupId>net.sf.csv4j</groupId> <artifactId>csv4j</artifactid></dependency></dependencies>

1行分のCSV

csvファイルを読み込むのに、csv4j は便利、ではcsv形式の1行分のデータを読むときは、 csv4j では、net.sf.csv4j.CSVTokenizer が用意されている。 CSVTokenizer tokenizer = new CSVTokenizer( "a, b ,\" c1,c2,c3 \"," ); while(tokenizer.hasMoreTokens…