ฉันมีปัญหาแปลก ๆ ฉันกำลังสร้างแอปกับ targetdk 13
ในวิธีการ onCreate ของกิจกรรมหลักของฉันฉันโทรgetActionBar()
เพื่อตั้งค่าแถบการกระทำของฉัน วิธีนี้ใช้งานได้ดีเมื่อทำงานบนเครื่องจำลอง Android 3.2 แต่เมื่อใช้ Android 3.0 และ 3.1 getActionBar()
วิธีการคืนค่าเป็นโมฆะ
ฉันพบว่ามันแปลกมากและฉันไม่สามารถเห็นเหตุผลว่าทำไมมันถึงทำเช่นนั้น นี่เป็นข้อบกพร่องของอีมูเลเตอร์หรือมีสิ่งที่ฉันต้องทำเพื่อให้แน่ใจว่าแอปพลิเคชันของฉันมีแอ็คชั่นบาร์หรือไม่?
การแก้ไข:
ฉันคิดว่าฉันพบวิธีแก้ปัญหาสำหรับปัญหานี้แล้ว ฉันไม่ได้ใช้ setContentView เพื่อกำหนดเค้าโครงสำหรับกิจกรรม แต่ฉันใช้fragmentTransaction.add(android.R.id.content, mFragment, mTag)
เพื่อเพิ่มส่วนย่อยให้กับกิจกรรม สิ่งนี้ใช้ได้ดีใน 3.2 แต่ในเวอร์ชันรวงผึ้งก่อนหน้านี้แถบการกระทำนั้นไม่ได้ถูกตั้งค่าหากคุณไม่ใช้ setContentView ในonCreate()
วิธีการ ดังนั้นฉันจึงแก้ไขโดยใช้setContentView()
วิธีในวิธีการของฉันonCreate()
และเพียงแค่จัดหามันด้วยเค้าโครงที่มี FrameLayout ว่างเปล่า ฉันยังคงสามารถใช้fragmentTransaction.add(android.R.id.content, mFragment, mTag)
วิธีการเช่นเดียวกับเมื่อก่อน
มันไม่ใช่การแก้ไขที่สวยที่สุด แต่ใช้งานได้