Cat Dev It!

develop apps

オープンで露出狂なAndroid

なんだか久しぶりに更新。
Android開発において重要なことは元のソースコードをみること。オープンソースで見放題なので何かしら出くわしたらすぐに見る癖をつける!重要です(`・ω・´)シャキーン
例えば、アンドロでHTMLのWYSIWYG作るのって簡単そうでしょ?WebView+Javascriptライブラリ使用で3秒でできちゃうレベル!でもそれだけじゃね(´・ω:;.:...
ちょっと調べるとEditText+Html.fromHtmlでできる!簡単そう!!!
色とかフォントとかボタンでぽちぽち変えられるようにして、はい完成!
HTML読み書きもちょちょいのちょい。HTMLが簡単に作れるよ!パーペキじゃん!
と、罠が待ってます\(^o^)/オワタ
これで書き出したHTMLを再度読み込んでよく見てみましょう。きっと保存にはHtml.toHtmlを使用した実装でしょう?なにかおかしいことが起きるはず。気づかなければテストが足りないですね。ケータイ小説ばりの妙な改行連打をしてみましょう。

今日は

いい


天気



だ

みたいな感じです。改行がバッサバッサとやっつけられてしまうはずです。
と、ここでやっと本題。Androidのソースコードを見ましょう。Html.javaです。
Html.javaのtoHtmlからwithinなんちゃらみたいなメソッドを追っていくと改行コードをbrタグに変換する処理にぶち当たります。そして、そこでは連続している改行の数によって生成するタグの数が可変しています。
1個のときと3個のときが同じじゃねえかヽ(`Д´)ノウワァァァン!!
2個のときbrタグが消えてるじゃねえかゴ━━━━(# ゚Д゚)━━━━ルァ!!ってなります。
つまり連続する改行の数が

1個のとき=brタグ1個
2個のとき=brタグ0個
3個のとき=brタグ1個
n個のとき=brタグn-2個

( ゚д゚)ハッ!改行が2個以上なら改行コードを2個水増しすればいいんじゃね?
というやっつけ仕事に近いような解決策を見出すのです(本当か?w
Html.toHtmlの前にEditTextから取得したテキストに対して連続する改行を調べ、2個以上なら¥n¥nを追加する・・・
解決がこれで正しいかは分かりません。でもサポートライブラリの錬金術を考慮すれば割とスマートな解決なんですよ。僕の中では。
Android大好きなので頑張ってください(´;ω;`)ブワッ