「Android:」とは:Android Framework-Resモジュールのプレフィックスは
-
27-10-2019 - |
質問
このコードをStyles.xmlファイルからFramework-Resモジュールからコピーします
<style name="Theme"> <item name="colorForeground">@android:color/bright_foreground_dark</item> <item name="colorForegroundInverse">@android:color/bright_foreground_dark_inverse</item> <item name="colorBackground">@android:color/background_dark</item>
.
<style name="Theme.Black"> <item name="android:windowBackground">@android:color/black</item> <item name="android:colorBackground">@android:color/black</item> </style>
ご覧のとおり、それらはすべて、値の属性名をwindowbackgroundにしています。しかし、フォーマーには android:
そして後者はそうではありません。書く必要が本当に必要ですか? android:
Androidフレームワークのプレフィックス?
解決
これが興味深い質問であることがわかり、答えを見つけるために探索してみました。これが私が見つけたものです。
から: http://developer.android.com/guide/topics/resources/style-resource.html
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style
name="style_name"
parent="@[package:]style/style_to_inherit">
<item
name="[package:]style_property_name"
>style_value</item>
</style>
</resources>
アイテム - スタイルの単一のプロパティを定義します。要素の子供でなければなりません。属性:名前属性リソース。必須。 定義するスタイルプロパティの名前、必要に応じてパッケージプレフィックスを使用して(Android:TextColor)。
から: http://developer.android.com/guide/topics/manifest/manifest-intro.html
リソース値一部の属性には、ユーザーに表示できる値があります。たとえば、アクティビティのラベルとアイコンです。これらの属性の値はローカライズされているため、リソースまたはテーマから設定する必要があります。リソース値は、次の形式で表されます。
@[package:]type:name
リソースがアプリケーションと同じパッケージにある場合、パッケージ名を省略できる場合、タイプは「文字列」または「描画可能」などのリソースのタイプであり、名前は特定のリソースを識別する名前です。たとえば、テーマからの値は同様の方法で表現されますが、最初の「?」それよりも '@':
?[package:]type:name
そして最後に、Android:なしで属性を提供しようとしました。それは例外を投げましたが、それは正常にコンパイルされましたが、
他のヒント
プラットフォームリソースへのアクセス
Androidには、スタイル、テーマ、レイアウトなど、多くの標準リソースが含まれています。これらのリソースにアクセスするには、Androidパッケージ名でリソースリファレンスを適格にします。たとえば、Androidは、リストアイテムに使用できるレイアウトリソースを提供します。 ListAdapter
:
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, myarray));
この例では、simple_list_item_1は、アイテムのプラットフォームによって定義されたレイアウトリソースです。 ListView
. 。リストアイテムの独自のレイアウトを作成する代わりに、これを使用できます。 (使用の詳細については ListView
, 、リストビューチュートリアルを参照してください。)