お話しするにはログインしてください。

|

Tips:YouTube の動画ページの URL はリンク付き縮小画像で表示される。
id:Kodakana
Androidアプリ開発部のことを語る
id:Kodakana
Androidアプリ開発部のことを語る

Honeycomb 以降ではアクションバーが付くので少し雰囲気が変わる。

id:Kodakana
Androidアプリ開発部のことを語る

結局、Palm のメモ帳に相当する機能は大体実装してしまった。データ保護はないけど。

id:Kodakana
Androidアプリ開発部のことを語る

地の罫線を入れる処理も書いたのでメモ帳の雰囲気が出てきた。

id:Kodakana
Androidアプリ開発部のことを語る

なるほどー。メモしておくでござる。

id:Kodakana
Androidアプリ開発部のことを語る

あっ、Uri の方にあったのかー。
かたじけないでござる。

id:Kodakana
Androidアプリ開発部のことを語る

id:Kodakana
Androidアプリ開発部のことを語る

2.3 系では dispatchKeyEvent() をオーバーライドしメニューキーをフックして openOptinsMenu() を呼ぶと選択解除されないので操作できる。
3.* 系以降では ActionMode の ActionBar に入れるアイテムを操作して対処。

id:Kodakana
Androidアプリ開発部のことを語る

EditText の挙動がバージョンによって違いすぎて泣いた。
2.2 以前:EditText で選択した文字列に対してオプションメニューから操作できる。
2.3 系:メニューキーを押すと文字列の選択が解除されてしまうので操作不可。
3.* 系 以降:ホールドで ActionMode に入って文字列選択できるがメニュー出せない。ActionMode 抜けると選択解除。

id:Kodakana
Androidアプリ開発部のことを語る

試行錯誤ののち、今のところこんな感じに。
 String files[] = path.list();
 List<String> ls = new ArrayList<String>();
 int figure = 16;
 for(int index = 0 ; index < files.length; index++){
  File who = new File (path, files[index]);
  if (!who.isDirectory()){
    String mod = String.format("%0"+figure+"d", who.lastModified());
    ls.add(mod+"/"+files[index]);
  }
 }
 Collections.sort(ls);
 Collections.reverse(ls);
 for (int index = 0; index < ls.size(); index++){
  String[] sta = ls.get(index).split("/");
  arrayadapter.add(sta[1]);
 }

id:Kodakana
Androidアプリ開発部のことを語る

ファイルを ListView に新しい順に並べるのが意外と簡単に行かない。
 String files[] = path.list();
 List<Long> updates = new ArrayList<Long>();
 HashMap<Long, String> lsl = new HashMap<Long, String>();
 for(int index = 0 ; index < files.length; index++){
  File who = new File (path, files[index]);
   if (!who.isDirectory()){
    updates.add(who.lastModified());
    lsl.put(who.lastModified(), files[index]);
   }
 }
 Collections.sort(updates);
 Collections.reverse(updates);
 for (int index = 0; index < updates.size(); index++){
  arayadapter.add(lsl.get(updates.get(index)));
 }
みたいにやると一見(゚д゚)ウマーの様だが、更新日時がミリ秒単位で同じファイルがあるとうまく行かない。

id:Kodakana
Androidアプリ開発部のことを語る

インテントでファイルを渡すときに File オブジェクトから
intent.setData(Uri.parse(file.toString()));
みたいにやるとスキーマが付かなかった。
なので、intent-filter でスキームを指定しているアプリを呼び出せない。
intent.setData(Uri.parse(file.toURI().toString()));
これは、file:/mnt/sdcard/... の様になる(toURL()でも同じ)。
ここで必要なのは file:///mnt/sdcard/... の様な形式なので結局、
intent.setData(Uri.parse("file://"+file.toString());

id:Kodakana
Androidアプリ開発部のことを語る


id:Kodakana
Androidアプリ開発部のことを語る

一覧の方も作ることにした。

id:Kodakana
Androidアプリ開発部のことを語る

Palm のメモ帳のエディタ部分だけ取り出したようなアプリ作るよ。

id:Kodakana
Androidアプリ開発部のことを語る

アプリを登録してから実際に Google Play で見えるようになるまでの焦らしプレイ

id:Kodakana
Androidアプリ開発部のことを語る

ライフサイクルの経過で何が起こるのか把握しておかないと思わぬところで躓くのであった。

id:Kodakana
Androidアプリ開発部のことを語る

Google 様に25ドル支払った。Google Play の、れじすとれーしょん・ふぃー。

id:Kodakana
Androidアプリ開発部のことを語る

特定の機種でだけ致命的という程でもない意味不明な挙動が発生して微妙な気分になる 一回休み

id:Kodakana
Androidアプリ開発部のことを語る

整って参りました。