各種リソースを使用する時に、自動生成されるgenフォルダにあるR.javaより「R.yyyy.xxxx」と名前を直接指定してリソースのIDを取り出す事がほとんどだが、例えば複数個あるViewに同じ処理を使用とする時にこの方法は面倒な事になる。
言語によっては、Viewをグループ化して配列にするんて方法があると思うけど、Androidにはこの機能が付いているのだろうか?
とりあえず、私が知っている方法としては以下の方法がある。

1.コードに配列を作って、予めIDを入れておく。
int[] res_id = {R.yyyy.xxxx0 , R.yyyy.xxxx1 , R.yyyy.xxxx2};
2.ViewのIDに連番を付けて、getIdentifierを使ってリソースIDを取得する。
Resources res = getResources();   //Widgetの場合はcontext.getRssources();を使う。
int res_id;
for(int i = 0; i < 3; i++) {
    res_id = res.getIdentifier("xxxx" + i, "yyyy", getPackageName());
}

前者はViewが増えるとメモリが、後者は処理手順が増えるのかしら・・・。
他にも「R.class.getClasses()」を使うという方法もあるけど割愛しとく。
興味がある人はググるといい。

カテゴリ/タグ:私の記憶領域 /  , ,    
コメント (0)

こうじゃないとネ。マオです。

Calendarクラスの継承問題ですが、アッサリと解決してしまった。
実はCalendarクラスのサブクラスにGregorianCalendarクラスってのがあって、それを継承すれば既存ソースにタッチする事無く継承できる。
最初から気付いていればとも思っちゃったりしたが、Calendarクラスを色々いじってたお陰で、大体の中身の意味を把握できたのでこれは無駄じゃなかったな。
いじらなかったら、別の所で躓いてたと予測できる事態があったし・・・。
やっぱり、一日寝ると脳がちゃんと切り替わりますね。

困っている事。
祝日の判定は初期に実装した物がそのまま使えたんだけど、振替休日の判定の実装に悩んでます。
今までは一ヶ月のデータを溜め込んだ後に、日曜祝日の部分を探して次の平日に割り当てるというロジックしてたんだけど、今度は処理単位が1日ずつになってしまったので、処理時間が増えそうな予感。
って言っても、ミリ秒単位の話だと思うけどな(笑)

しかし、この手の入力と回答が沢山あるプログラムのチェックは自動化ツールが便利ですねー。
テスト用のプログラムを作っておけばボタンをポチッですから・・・。
一年の平日・祝日の総チェックを0.03秒してくれます。
変動型の祝日は嫌な予感がするから、三年分くらいテストしとこうかしら。

早く本体の開発に戻りたい所><

カテゴリ/タグ:月面開発室 /  ,    
コメント (0)

綺麗に作ろうとすると手間がかかる。マオです。

良い感じにカレンダーウィジェットの開発が滞っています☆
細かい作業が多いのよ。
一つのマスに一杯部品が入ってるもんで、一箇所いじると全箇所一つずつ修正するという地獄の作業。
サイズとかのプロパティに関しては共有してるから一箇所で修正できるんだけど、個別に付けなきゃいけないプロパティは35箇所修正です><
で、見事にレイアウト的なバグが見つかって10月の6週必要な所で、6週目が表示されないというのを見つけてしまって+7個追加の42箇所修正。
しかも、デザイン的な部分でマスにさらに部品を詰め込む作業が(略)

ここからは言語的な話。
カレンダーなのでCalendarクラスを多用してるんですが、これを継承して祝日も対応したいんだよね。
所がCalendarクラスを継承すると、便利なメソッドも自力で実装しなきゃいけない。
そのままの君が好きなのにッ!(馬鹿)
これ出来れば微妙なソースコードが色々とスッキリするんだけどなー。
いつもスパゲティなコードになりがちなので、ここらで綺麗にすれば後が楽なんだろうけど・・・。

完成が遠いな(遠い目)

カテゴリ/タグ:月面開発室 /  , ,    
コメント (0)

何か楽しい。マオです。

Xperiaを買ってから10日経ったわけですが、すっかり生活の一部となって日本系携帯に戻る事はできなさそうです。
多分、Wi-Fiが自由に使えるからってのが大きい気がするな。
前の携帯ではフルブラウザ使うのを躊躇ってましたから。
居間でネットブック持ち出さなくてもサイトが見れるのは便利すぎます・・・。
基本的に3G回線は切ってるので、パケットの方は全く使ってません。
外でメールを見る時に付けるくらいか。
私の使い方だと、前の携帯と維持費はそんなに変わらないかもしれないな。

最近、androidの開発の勉強をしてまして、だんだん面白くなってきている所です。

画像は開発用エミュレーターですが、貼り付けてあるカレンダーウィジェットが今作っている物です。
ようやく形が出来てきたので、実機にも突っ込んだりしてます。
祝日も表示されるように作ってあって、上にあるボタンを押すと前月や来月の表示が・・・ボタンが小さすぎてちゃんと押すのが難しい><
今後、予定登録とか出来るようにする設計で作っているので、頑張って完成させたい所デスネー。
ってか、日付データを持ってくるロジックが気に入らないから、作り直したい・・・。

こんな感じでブログが書けないくらい楽しんでいます(言い訳)

足りないのか、見つからないのか。マオです。

ちょっとブログの表示に不具合があったんでテンプレートをいじってみたわけだけど、あまり納得いかないプログラムなんですよ。
納得がいかないというか、もっとスマートな方法があるんじゃないかとか思ってたり。
不具合ってのが、各記事の日付が一部表示されてない状態。
原因はサクっと分かって修正もしたんだけど、何となく方法が回りくどいとい。

[不具合]
投稿日付が同一の記事の場合、最初の記事に対しては日付が出力されるのに、二件目以降の記事には日付が出力されない。

[原因]
WordPressは投稿記事をループにて一件ずつ取り出して、各関数で内容を読み出して出力するという使用なのだが、投稿日付を取り出す関数のみ「取り出すべき記事の投稿日付に同一のものがある場合、取り出した記事の最初の一件のみで投稿日時を取り出すことが出来る」という、謎仕様。

[マオの解決方法]
プログラムにて色々とゴチャゴチャやって解決☆

弊害があって、投稿日付を変数に引っ張り出す場合はフォーマットを指定しないと引っ張り出せなくて、GUIの設定画面のフォーマット指定が使えなくなるという、地味な嫌がらせが・・・。
私しかテンプレート使わないからテンプレート自体をいじればいいんだけど、配布用に作る場合はどうすればいいんだろうな、これ。
ざっと原文のマニュアルの方も見たけど、見落としでもあるのだろうか。

久しぶりに使う言語ってのは楽しいかもしれん・・・(笑)