ทุกคนสามารถอธิบายเครื่องหมายคำถามได้หมายความว่าในคุณลักษณะของ Android XML หรือไม่
<TextView
style="?android:attr/windowTitleStyle"
More attributes
/>
ทุกคนสามารถอธิบายเครื่องหมายคำถามได้หมายความว่าในคุณลักษณะของ Android XML หรือไม่
<TextView
style="?android:attr/windowTitleStyle"
More attributes
/>
คำตอบ:
เครื่องหมายคำถามหมายความว่าเป็นการอ้างอิงถึงค่าทรัพยากรในชุดรูปแบบที่ใช้ในปัจจุบัน ดูlinuxtopia Android Dev Guideหรือandroid.com Dev Guideสำหรับข้อมูลเพิ่มเติม
\?
หนีเครื่องหมายคำถาม
การ ช่วยให้คุณอ้างถึงแอตทริบิวต์ลักษณะแทนการใช้ทรัพยากรที่กำหนดรหัสตายยาก ดู"แอตทริบิวต์สไตล์การอ้างอิง"ใน Android Dev Guide สำหรับรายละเอียด
ดังนั้นสิ่งนี้มีประโยชน์จริงอย่างไร มันสมเหตุสมผลที่สุดเมื่อพิจารณาหลายธีมที่มีแอ็ตทริบิวต์รีซอร์สแบบกำหนดเองเดียวกันแอตทริบิวต์ที่กำหนดเองทรัพยากรเดียวกัน
สมมติว่าคุณมีธีมที่เกี่ยวข้องกับภาพยนตร์เช่น MyThemeTransformers และ MyThemeHobbit และทั้งคู่มีแอตทริบิวต์ที่เรียกว่าmovieIcon movieIconและแอตทริบิวต์ movieIcon นั้นชี้ไปที่ทรัพยากรที่สามารถถอนได้ต่าง ๆ เช่น robot.png หรือ hobbit.png ในแต่ละนิยามของธีม
คุณสามารถอ้างถึง " ? attr / movieIcon " ได้ทุกที่ในธีมมีผล (เช่นในแถบเครื่องมือหรือกล่องโต้ตอบหรือเค้าโครงมุมมองใด ๆ ) และมันจะชี้ไปที่ drawable ที่ถูกต้องโดยอัตโนมัติเมื่อคุณสลับระหว่างธีม คุณไม่จำเป็นต้องใช้ตรรกะขึ้นอยู่กับชุดรูปแบบเพื่อใช้ drawable ที่แตกต่างกัน คุณเพียงกำหนดแอตทริบิวต์ movieIcon สำหรับแต่ละชุดรูปแบบและกรอบ Android จะดูแลส่วนที่เหลือ