เครื่องหมายคำถาม (?) ในแอตทริบิวต์ XML สำหรับ Android


140

ทุกคนสามารถอธิบายเครื่องหมายคำถามได้หมายความว่าในคุณลักษณะของ Android XML หรือไม่

<TextView    
    style="?android:attr/windowTitleStyle"
    More attributes
/>

คำตอบ:


132

เครื่องหมายคำถามหมายความว่าเป็นการอ้างอิงถึงค่าทรัพยากรในชุดรูปแบบที่ใช้ในปัจจุบัน ดูlinuxtopia Android Dev Guideหรือandroid.com Dev Guideสำหรับข้อมูลเพิ่มเติม

\? หนีเครื่องหมายคำถาม


3
ฉันคิดว่ามันจะดีกว่าที่จะชี้ลิงค์ที่สองของคุณไปที่: developer.android.com/guide/topics/resources/…
Casebash

9
บทความ Dev Dev ได้รับการปรับโครงสร้างใหม่นี่คือลิงก์โดยตรงใหม่: developer.android.com/guide/topics/resources/…
mernen

3
ฉันคิดว่ามันเหมาะสมกว่าที่จะพูดเหรอ? ใช้เพื่อ "อ้างอิงสไตล์แอตทริบิวต์" แทน "อ้างอิงถึงค่าทรัพยากรในชุดรูปแบบที่ใช้ในปัจจุบัน" ตามลิงค์คู่มือ android.com dev ที่คุณให้ไว้
Helin Wang

5
ฉันคิดว่าเหมาะสมที่สุดเมื่อพิจารณาหลายธีมที่มีแอตทริบิวต์ทรัพยากรที่กำหนดเองเหมือนกัน สมมติว่าคุณมีธีมที่เกี่ยวข้องกับภาพยนตร์เช่น MyThemeTransformers และ MyThemeHobbit และทั้งคู่มีแอตทริบิวต์ที่เรียกว่า movieIcon และ movieIcon ชี้ไปที่ทรัพยากรที่ถอนได้พูดรูปหุ่นยนต์หรือภาพฮอบบิทในนิยามแต่ละธีม คุณสามารถอ้างถึง "? attr / movieIcon" ได้ทุกที่ในธีมมีผล (เช่นในแถบเครื่องมือหรือกล่องโต้ตอบหรือเค้าโครงมุมมองใด ๆ ) และมันจะชี้ไปที่ drawable ที่ถูกต้องโดยอัตโนมัติเมื่อคุณสลับระหว่างธีม ฉันหวังว่าจะช่วย
Devon Biere

1
@DevonBiere มันช่วยได้! มันจะดีถ้าคุณส่งความคิดเห็นของคุณเป็นคำตอบ
Alexander Suraphel

37

การ ช่วยให้คุณอ้างถึงแอตทริบิวต์ลักษณะแทนการใช้ทรัพยากรที่กำหนดรหัสตายยาก ดู"แอตทริบิวต์สไตล์การอ้างอิง"ใน Android Dev Guide สำหรับรายละเอียด

ดังนั้นสิ่งนี้มีประโยชน์จริงอย่างไร มันสมเหตุสมผลที่สุดเมื่อพิจารณาหลายธีมที่มีแอ็ตทริบิวต์รีซอร์สแบบกำหนดเองเดียวกันแอตทริบิวต์ที่กำหนดเองทรัพยากรเดียวกัน

สมมติว่าคุณมีธีมที่เกี่ยวข้องกับภาพยนตร์เช่น MyThemeTransformers และ MyThemeHobbit และทั้งคู่มีแอตทริบิวต์ที่เรียกว่าmovieIcon movieIconและแอตทริบิวต์ movieIcon นั้นชี้ไปที่ทรัพยากรที่สามารถถอนได้ต่าง ๆ เช่น robot.png หรือ hobbit.png ในแต่ละนิยามของธีม

คุณสามารถอ้างถึง " ? attr / movieIcon " ได้ทุกที่ในธีมมีผล (เช่นในแถบเครื่องมือหรือกล่องโต้ตอบหรือเค้าโครงมุมมองใด ๆ ) และมันจะชี้ไปที่ drawable ที่ถูกต้องโดยอัตโนมัติเมื่อคุณสลับระหว่างธีม คุณไม่จำเป็นต้องใช้ตรรกะขึ้นอยู่กับชุดรูปแบบเพื่อใช้ drawable ที่แตกต่างกัน คุณเพียงกำหนดแอตทริบิวต์ movieIcon สำหรับแต่ละชุดรูปแบบและกรอบ Android จะดูแลส่วนที่เหลือ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.