2011年01月22日

謎のonTouchEvent

現在公開に向けてメモアプリのテストをしているのですが、不思議な現象が発生し、悩むことに。
それはTextViewにxmlで指定していたautoLinkが動作しない(ことがある)という現象。
おかしいな、と思っていろいろいじっているうちに解消することもあり、これもデバッグで追えないというより追いようがない?
画面ダブルタップでTextViewのサイズを変更する機能を途中からつけたのですが、それがいけないのかと思って試行錯誤しましたが、autoLinkが有効になるとサイズ変更機能が無効になるので、それはちょっと困る。

しかし、ようやく分かりました。
起動したままだとNGなのだけれど、リンク(URLや電話番号)が挿入された文書を表示した後では正常に動作するようになるのです。
なぜかリンクのない文書を表示させている限りはonTouchEventが呼ばれない。

でも、リンクが挿入された文書を表示させた後はOKだなんて対処のしようがないような気がします。
つまり自分のせいじゃないぜ!などと主張したいところですが、ド素人の私にはそんな強い自己主張は許されない。(笑)
それでもなんとか思った通りに動作させたいので、手っ取り早くonCreateでtextView.setText("http://適当なURL")としてみたら、見事最初からリンクもサイズ変更機能も思ったように動作しました。
めでたし、めでたし?
まあ、onCreateの後ですぐにまたtextView.setText("")をするので、一応問題なし、かな?

posted by 白虹 at 22:36| Comment(0) | TrackBack(0) | Android開発

2011年01月20日

WebViewはDonutで使えない?

簡易ヘルプがやはり見づらいなと思ったので、HTMLにすることにしましたですよ。(怪しい日本語復活(笑))
具体的にはカスタムダイアログにTextViewを載せて、そこに簡単な使い方をオフラインで見ることができるようにしていたのですが、箇条書きの先頭に中黒(・)とかの記号を使っても二行目から字下げされず見づらいので、HTMLでリストを使えば良いかなという単純な発想でした。確かWebを読み込ますViewにオフラインのファイルを読み込むこともできたはず、と思ってやり方をググると、assetsフォルダにファイルを置いてアクセスできるとのことで、コードはいずこでも下記のようになってますです。

WebView webView = (WebView)findViewById(R.id.help);
webView.loadUrl("file:///android_asset/help.html");

しかし、これがどーしてもできない!
ごく単純なコードですし、help.htmlも確かにassetsフォルダに格納されてます。
なぜできないんだあ!?

こんな簡単そうなところでハマるとは思わなかったですけど、普通の人がはまることのない簡単なところではまるのが、自分の愚かしさの真骨頂というところでしょうか?

ふと疑問に思ったのは、xmlファイルで<WebViewと入力しようとしても、eclipseが入力補完してくれないこと。
最初はあまり気にしなかったのと、今回のアプリはAPI LEVEL4つまり1.6をターゲットとして作成しているのですが、ReferenceでWebViewはAPI LEVEL1と書かれているので、当然使えると思ってました。
しかし、どうしてもうまくいかないので、2.2(froyo)のバーチャルデバイスで試してみると……やはり動かない。

でも、自分の書き方がヘボいのかも知れない。そう思って、ごく単純な構造のアプリを作ってみて再度試したところ、2.2ではOK!
そして、2.1でも試しましたが、これもやっぱりNG!
え?2.2でしかダメなの?
ほとんど最新じゃないですか?
なんだか信じられない……
そもそも、同じようにダイアログでHTMLでフォーマットされているようなヘルプを載せているアプリもあるし、それが1.6の端末で動いていますしね。

ただ、この完成直前に来て、ヘルプで時間を取っている訳にはいきません。ほとんど丸一日つぶしてしまったし。(もったいない)
それに他でも中黒の後字下げなしでヘルプを作っている人も散見されるので、少々すっきりしませんが、今回は目をつぶってHTMLは諦めることにしましょう。
後々のお楽しみ(?)ということで。

(2011/2/21追記:http://shironiji.sblo.jp/article/43532936.html?1298297282にてうまく行きました)
posted by 白虹 at 21:30| Comment(0) | TrackBack(0) | Android開発

2011年01月19日

閑話休題

しかしなんですね、独り言を書いているはずなのに、なぜか「ですます調」。
アクセスログを見るとごくわずかな人が見ているようなので、なんか申し訳ないです。
プログラムもテキトーですが、いっぱいいっぱいなので、ブログの文章も適当で、自分以外の人が読むと意味不明なのではないかな、と。あまりにも毎日悩むことが多すぎて少し時間が経つと、詳しい内容を忘れるという半アルツハイマー状態ですし。

そういえば、ページがブログなのにインラインフレームを使っているのか?コードの部分の記述に行番号がついてスクロールできるようになっているのを見かけますが、あれはどういう仕組みなんですかね?
毎回自分で書いているとも思えないし、そういう機能を持ったブログシステムがあるのでしょうか?

ところで、まだ初めて間もないこのブログですが、もしかしたら引っ越し、というかURLが変わるかも知れません。
絶対いないと思いますが、万が一ブックマークに入れている人などいたら、ごめんなさい。
まだ引っ越すかどうか分かりませんけどね。

それにしても、いよいよ作っているアプリも完成間近かも知れないという状況。
よほどのことがなければ今月中にアップできるでしょうか?
まあ、その前にアイコン作ったりとか色々あるのですが、できるといいなあ。

posted by 白虹 at 00:23| Comment(0) | TrackBack(0) | Android開発