2011-01-23 19 views
38

Android düzeni xml dosyasındaki "? Android:" ve "@android:" arasındaki fark nedir? Android SDK kaynaklarını yeniden kullanmanın değiştirilebilir yolları gibi görünüyor.Bir android düzeni xml dosyasındaki "? Android:" ve "@android:" arasındaki fark nedir?

Keşfettiğim tek fark, aşağıdaki örnekte gösterilmiştir.

Burada textview sağ kenar ile Burada ımagebutton

<RelativeLayout 
    android:id="@id/header" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="#888888"> 
    <TextView 
     android:id="@android:id/text1" 
     android:layout_alignParentLeft="true" 
     android:text="blah blah" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_toLeftOf="@android:id/button1" /> 
    <ImageButton 
     android:id="@android:id/button1" 
     android:layout_alignParentRight="true" 
     style="@style/PlusButton" /> 
</RelativeLayout> 

sol kenarı ile aynı hizada olarak bırakılmaktadır ki, TextView sağ kenarı RelativeLayout sağ kenarı ile hizalıdır. TextView, ImageButton ile çakışıyor.

<RelativeLayout 
    android:id="@id/header" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="#888888"> 
    <TextView 
     android:id="@android:id/text1" 
     android:layout_alignParentLeft="true" 
     android:text="blah blah" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_toLeftOf="?android:id/button1" /> 
    <ImageButton 
     android:id="?android:id/button1" 
     android:layout_alignParentRight="true" 
     style="@style/PlusButton" /> 
</RelativeLayout> 

iki düzenleri arasındaki tek fark, vs @android kullanılmasıdır? Robot. Her ikisi de hata olmadan derler.

Çok teşekkürler.

+0

Olası kopyalar http://stackoverflow.com/questions/2733907/question-mark-in- xml-öznitelikleri-android için) –

cevap

33

Kimliği bir soru işareti ile önek yapmak, özniteliği kodlamak yerine stil temasında tanımlanmış bir stil özniteliğine erişmek istediğinizi belirtir.

bakınız burada "Stil başvurulması Nitelikler": accessing-resources

[(?) Soru işareti XML Android için niteliklerini de] (içinde
+4

Daha spesifik olarak,? ekstra bir dolaylılık seviyesi anlamına gelir. Bunu, özniteliğin kendisine atıfta bulunmak yerine işaret ettiği kaynağı getirmek için bir tema özniteliğini kaldırmayı düşünün. Bunu “android: attr/foo” ile görüyorsunuz. – adamp

+7

Bu yanıtta daha fazla açıklama olması dileği ile – CodyBugstein

+0

@ Iray, burada bir örnek: sdk \ platforms \ android-L \ data \ res \ values ​​içinde bulunan themes.xml dosyasından bu stilleri buldum. ' ' ürün <özn name = "colorForeground" başvurulan renk/bright_foreground_holo_dark: renk/android @