現在のテーマ属性に基づいてListViewの背景色を設定しようとしていますが、ListViewが表示されるたびにクラッシュします。何か問題があるようですが、何がわかりません...
これが私がしていることです:
まず、背景色を作成します。
<resources>
<color name="userlist_background_light">#fff0f0f0</color>
<color name="userlist_background_dark">#ff040404</color>
</resources>
次に、カスタムテーマの属性を作成します。
<resources>
<attr name="userlist_background" format="reference|color" />
</resources>
第三に、私のテーマでこの属性を設定します。
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="Light" parent="Theme.Sherlock.Light">
<item name="userlist_background">@color/userlist_background_light</item>
</style>
<style name="Dark" parent="Theme.Sherlock">
<item name="userlist_background">@color/userlist_background_dark</item>
</style>
</resources>
そして最後に、ListViewxmlでこの属性を使用します。
<ListView
android:id="@+id/user_bar"
android:layout_width="0dip"
android:layout_height="0dip"
android:background="?attr/userlist_background"
android:cacheColorHint="?userlist_background"
android:visibility="gone" />
Eclipseレイアウトビューでさえクラッシュします。もちろん、background属性で直接「@color/」を使用すると正常に機能します。「?android:attr/colorBackground」と言っても動作します。
メッセージエラーは次のとおりです。
android.view.InflateException:バイナリXMLファイルの行#8:クラスandroid.view.ListViewのインフレーションエラー原因:android.content.res.Resources $ NotFoundException:リソースが描画可能(色またはパス)ではありません:TypedValue {t = 0x2 / d = 0x7f010068 a = -1}
アンドロイドの属性で動作するので、私は何か間違ったことをしていると確信していますが、Google検索中に何を見つけることができませんでした。
あなたが私を助けてくれることを願っています!
どうもありがとう、
セバスチャン。