วิธีเปิดเนื้อหาใน Android
เฟรมเวิร์กของ Android มีตัวเลือกมากมายสำหรับงานที่โปรแกรมของคุณต้องดำเนินการและคลาส AssetManager เสนอทางเลือกให้กับทรัพยากรที่โครงการของคุณมักจะใช้เพื่อสตรีมไบต์ไปยังโปรแกรมของคุณในขณะรันไทม์ การใช้ AssetManager แทน Resources ช่วยให้คุณสามารถป้อนรูปแบบที่กำหนดเองซึ่งกรอบงาน Android ไม่สามารถแยกวิเคราะห์ได้และช่วยให้คุณสามารถสร้างอินสแตนซ์อ็อบเจ็กต์โดยใช้คลาส InputStream ที่โปรแกรมเมอร์ Java คุ้นเคย อินเทอร์เฟซของ AssetManager นั้นเรียบง่ายมีประสิทธิภาพและต้องใช้โค้ดเพียงไม่กี่บรรทัด
1
คลิกขวาที่โฟลเดอร์รูทของโปรเจ็กต์ Android ของคุณแล้วคลิก“ โฟลเดอร์ใหม่” ตั้งชื่อโฟลเดอร์ว่า "assets" แล้วคลิก "Finish"
2
เปิดไฟล์เบราว์เซอร์บนเดสก์ท็อปของคุณแล้วกดปุ่ม "Ctrl" ค้างไว้ในขณะที่คลิกเพื่อเลือกไฟล์ที่คุณต้องการสตรีมไปยังโปรแกรมของคุณ กด“ Ctrl-C” เพื่อคัดลอกไฟล์ไปยังคลิปบอร์ด คลิกโฟลเดอร์“ assets” ของโปรเจ็กต์ของคุณซึ่งเป็นโฟลเดอร์ที่คุณเพิ่งสร้างขึ้นแล้วกด“ Ctrl-V” เพื่อวางไฟล์
3
สร้างอินสแตนซ์ AssetManager ในโค้ดของคุณโดยเพิ่มบรรทัดต่อไปนี้:
AssetManager am = getContext (). getAssets ();
เพิ่มบรรทัดนี้ก่อนที่คุณจะต้องใช้ AssetManager หรือหากคุณจะใช้มากกว่าหนึ่งวิธีให้ถือเป็นตัวแปรสมาชิก ในการดำเนินการนี้ให้ประกาศตัวแปรนอกเมธอดใด ๆ และสร้างอินสแตนซ์ในตัวสร้าง
4
เปิดไฟล์ในโฟลเดอร์ assets โดยสร้างอินสแตนซ์วัตถุ InputStream ภายในบล็อกลอง ตัวอย่างเช่นพิมพ์ดังต่อไปนี้:
InputStream คือ = null; ลอง {is = am.open (“ file_name.xyz”); } catch (FileNotFoundException เช่น) {}
แทนที่ "file_name.xyz" ด้วยชื่อไฟล์ของคุณและนามสกุลภายในเครื่องหมายคำพูดคู่
5
สร้างบัฟเฟอร์ไบต์เพื่อเก็บไบต์จากอินพุตสตรีมโดยเรียกเมธอด“ read” ของอ็อบเจ็กต์ InputStream จัดสรรหน่วยความจำสำหรับบัฟเฟอร์ด้วยรหัสที่คล้ายกันดังต่อไปนี้:
ขนาด int = is.available (); ไบต์ [] บัฟเฟอร์ = ไบต์ใหม่ [ขนาด]; is.read (บัฟเฟอร์);
6
สร้างอินสแตนซ์อ็อบเจ็กต์โดยใช้ไบต์จากอินพุตสตรีม ตัวอย่างเช่นคลาส Java String มีตัวสร้างที่มีพารามิเตอร์ไบต์อาร์เรย์ที่คุณสามารถสร้างอินสแตนซ์โดยตรงด้วยโค้ดต่อไปนี้:
สตริงสตริง = สตริงใหม่ (บัฟเฟอร์);
หากคุณกำลังอ่านไบต์สำหรับคลาสที่คุณกำหนดไว้ให้เพิ่มตัวสร้างที่รับอาร์เรย์ไบต์เป็นอาร์กิวเมนต์