月別: 2015年3月

これでもくらえ!バーニングブック!ヽ(`Д´)ノ -3

アプリケーションコンポーネント以下の3件のブログ記事を訳した。

これまたなんか訳しづらかった。というかちゃんと訳せてるか自信がない(ノ∀`)
なんでここだけブログ記事へのリンクなんだろうか?

覚え書き

java.lang.RuntimeException: Content has view with id attribute 
'android.R.id.list' that is not a ListView class

のエラーが出た時にぐぐったようだが、どれが答えか忘れた(ノ∀`)

xml – “Content has view with id attribute ‘android.r.id.list’ that is not a ListView Class.” when create a list view in a fragment – Stack Overflow
FATAL EXCEPTION: main java.lang.RuntimeException: Content has view with id attribute ‘android.R.id.list’ that is not a ListView class – Stack Overflow
Your content must have a ListView whose id attribute is ‘android.R.id.list’ – Stack Overflow
java.lang.RuntimeException: Your content must have a ListView whose id attribute is ‘android.R.id.list’ – Stack Overflow


Caused by: java.lang.ClassNotFoundException: 
Didn't find class "com.xxxxx.yyyyy.MainActivity" on path:
 DexPathList[[zip file "/data/app/com.xxxxx.yyyyy-1.apk"],
nativeLibraryDirectories=[/data/app-lib/com.xxxxx.yyyyy-1,
 /vendor/lib, /system/lib]]

何のエラーだか覚えてなかったけど、サポートライブラリのコンフリクト絡みみたい。
java – Android ClassNotFoundException: Didn’t find class on path – Stack Overflow


マニフェストファイルから記載されているアクティビティを取得してインテントで
起動する際に読んだ…はず。

StringからActivityを開始する
java – How can I start a new android activity using a string? – Stack Overflow

contextからactivityのクラス名を取得する – Screaming Loud


あんまり詳しく覚えていないが、何の考えもなしにSDK等を最新版にしたら
eclipseがおかしくなった。

android:actionModeShareDrawable No resource found 
that matches the given name

やら

android-support-v7-appcompat] Unable to resolve target 'android-21'

というエラー(警告?)を消そうと思って、
SDK更新後にAndroid のビルドエラー(No resource found that matches the given name)AICS
gradle – appcompat-v7:21.0.0′: No resource found that matches the given name: attr ‘android:actionModeShareDrawable’ – Stack Overflow
のことを試したり、

@integer/google_play_services_version

のエラーを消そうと
y.okano blog: Eclipse で google_play_services_version が見つからない
を試したり、その他諸々のことを適当にいじくっていたら、
eclipseがおかしくなった…(ヽ’ω`)

長時間奮闘したが復旧せず、新しいeclipse環境を構築し直す…_| ̄|○
途中、AndroidStudioに乗り換えようと思ったが、いまいち慣れないのと
うちのマシンの性能が低すぎて、取り敢えずインストールしてサンプルを
実行しただけ…__◯_ まあいずれ使ってみよう…何にしても時間を無駄にした…

これでもくらえ!バーニングブック!ヽ(`Д´)ノ -2

デバイスの適合性
システムパーミッション
を訳した。

システムパーミッションの方は知識が足らないせいか、よくわからない文章が多かった。
というわけでちゃんと訳せてるかよくわからないw
凄く読み辛い英文のような気がしたが、それはきっと俺氏の英語能力が低い所為(ノ∀`)
あとちょっと調子が悪かったから…( ;・´ω・`) タブンソノセイ

Fragmentがよくわからない(´・ω・`)

一応、ViewPagerにListFragmentを乗せてListViewのアイテムをクリックすると
音楽再生がされるようになった。回転しても問題ない。

アルバム別とアーティスト別は詳細項目を表示せずに、全ての曲を再生するという形にして
みたが、何かそれはおかしいと気付き、各アルバム、各アーティスト用のフラグメントを
用意してみようと試みる。

だがここで一週間弱はまる…(ヽ’ω`)
そして今も完全には解決しているわけではない…_| ̄|○


色んなサイトを巡って読むのに疲れた…__◯_
ようやくreplaceを使って新しいFragmentを表示出来た(・∀・)と思ったら
前のFragmentが何故か残ったまま……サイトによっては上に来る背景色を
不透明にして下のFragmentのenabledをfalseにするみたいなことが書いて
あって「( ´・ω・)エ?」となる。俺氏はFragmentを理解していない又は勘違いしている
という可能性が高いのだが「なんだこの糞仕様は(´・ω・`)」とがっくり来る。
何かしらの理由があってこういう仕様なんだろうけど。
FragmentStatePagerAdapterを使えばいいのだろうか?
それともsetRetainInstance(true)の絡み?

Android: Replaced Fragment Is Still Visible
T.Yokoyamaのブログ: Support Packageを使ってFragmentを利用する

Fragment#replaceを使わずに一気にFragmentを交換するというのもあってコードを
眺めていたら一旦Fragmentを全部削除して差し替え済みのListを渡す形になっていて
「なんという力業…( ;・´ω・`)ゴクリッ」と思ったが、replace自体が

処理としては、同じ containerViewId に追加されている全ての Fragment に対して remove(Fragment) を呼び、それから add(containerId, fragment, tag) を呼ぶのと同じ
Android FragmentTransaction のまとめ

という形みたいなので、replaceからして力業なんかΣ(゚∀゚;)


というわけでFragment関連のドキュメントを読みすぎてFragment酔いになり、
加えてFragmentManagerのバックスタック?ってアクティビティ内で一つだけ
っぽいのも気になり、何故か「Activityをフリックして切り替えるコードが
確かあったから、複数のFragmentじゃなくて複数のActivityにすれば
FragmentManagerのバックスタックも個別になるんじゃね(・∀・)?
左右の無限ループも可能になるし」と血迷う。

またActivityやGestureDetectorなどを調べたり、コードを移植するのに
長い時間を費やす……___ 

お試しだから決め打ちでいいのに、何故か汎用的にしようとし更に時間を…

具体的にはActivityManagerみたいなクラスを作って、getPackageInfoで
得た文字列を、フリック対象のActivityを指定する為のActivityの
名前(正確にはstartWithで使用するプリフィックス)でふるいにかけて出来た
パッケージ名込の文字列のArrayListを渡して、そのままのArrayListと
lastIndexOf(“.”)で切り分けたActivityの名前のみのArrayListにして、
GestturaDetectorの左(右)へのフリック時にgetLocalClassName()で得た名前を
ActivityManagerへ送ってAcitivity名のArrayListの位置から現在位置と左(右)の
パッケージ名込のAcitivity名を取得して、その名前からClass#forName()で得た
クラスでインテントを作成して左(右)のActivityを起動するという……
なんだか書いていてよくわからなくなってきた…( ´・ω・)

そこまでやってListFagmentを乗っけた ← イマココ


これにはまってて翻訳はDevice Compatibilityまでしか訳せてない…(ヽ’ω`)
全然関係ないけどこのページのCompatibilityは互換性じゃなくて適合性で
訳した方がすっきりしたな。