Android 0, ทำความสะอาดการคัดเลือกนักแสดง
หนึ่งในสิ่งที่ Google ประกาศใน IO 2017 คือสิ่งที่เรียกว่า 'ทิ้งไป' :) นักพัฒนา Android ไม่จำเป็นต้องทำการคัดลอกคู่มือสำหรับ findViewById () ตัวอย่างเช่นวิธีเก่า ๆ ในการรับมุมมองข้อความโดยใช้ findViewById () จะเป็นแบบนี้
TextView txtDesc = (TextView) findViewById(R.id.textViewDesc);
txtDesc.setText(getString(R.string.info_angkot_description));
ในขณะที่วิธีการใหม่จะเป็นเช่นนี้
TextView txtDesc = findViewById(R.id.textViewDesc);
txtDesc.setText(getString(R.string.info_angkot_description));
มันเป็นการเปลี่ยนแปลงที่ง่าย แต่สำหรับโปรแกรมเมอร์ที่มีประสบการณ์แล้วรหัสที่สะอาดอย่างนี้สามารถทำให้คุณมีความสุขมากและมันจะช่วยให้คุณมีอารมณ์การเขียนโปรแกรม :)
เพื่อให้สามารถทำสิ่งนี้ได้คุณจะต้องตั้งค่าโปรเจ็กต์ sdk ที่รวบรวมเป็นเวอร์ชัน 26 ในแอพ build.gradle ของคุณ
คุณยังสามารถกำหนดเป้าหมายเวอร์ชัน sdk ก่อนหน้าได้เช่นกันดังนั้นจึงเป็นการเปลี่ยนแปลงที่ไม่ล่วงล้ำ
ทีนี้ปัญหาที่แท้จริงคุณจะทำความสะอาดโค้ดเก่าที่ใช้การคัดเลือกนักแสดงได้ตลอดเวลาอย่างไร โดยเฉพาะอย่างยิ่งเมื่อคุณมีไฟล์กิจกรรมหลายร้อยไฟล์ คุณสามารถทำได้ด้วยตนเองหรืออาจว่าจ้างผู้ฝึกงานให้ทำ😛 แต่โชคดีสำหรับผู้ฝึกงานทุกคน, android studio เตรียมไว้แล้วเพื่อช่วยเหลือพวกเรา
เมื่อคุณวางคาเร็ท (หรือคลิกที่แคสต์สตูดิโอหุ่นยนต์ซ้ำซ้อน) จะแนะนำ 2 ตัวเลือกในการจัดการแคสต์ซ้ำซ้อน
ก่อนอื่นมันจะแนะนำให้ลบ cast ที่ซ้ำซ้อนหรือคุณสามารถเลือก clean up code มันจะลบ cast ที่ซ้ำซ้อนทั้งหมดสำหรับไฟล์นั้น มันดีกว่า แต่เราต้องการมากกว่านี้ เราไม่ต้องการที่จะเปิดแต่ละไฟล์และทำความสะอาดนี้โดยหนึ่ง
หนึ่งในสิ่งที่ทำให้แนวคิดพิเศษของ IntelliJ คือฟีเจอร์ที่เรียกว่าการกระทำแบบเจตนา สิ่งที่คุณต้องทำคือกด ctrl + shift + A แล้วพิมพ์ clean และเลือกการกระทำการล้างข้อมูลโค้ดและเลือกขอบเขตโครงการทั้งหมด ด้วยขั้นตอนง่ายๆไม่กี่ขั้นตอนนี้รหัสของคุณจะสะอาดกว่าเดิมมาก
จุดสำคัญอย่างหนึ่งคือคุณทำสิ่งนี้กับระบบการควบคุมเวอร์ชันของรหัส วิธีนี้คุณสามารถเปรียบเทียบการเปลี่ยนแปลงที่เกิดขึ้นจากการกระทำโดยเจตนาและย้อนกลับไฟล์ใด ๆ ที่คุณต้องการ
คัดลอกมาจากโพสต์ต้นฉบับ:
https://medium.com/@abangkis/android-0-clean-up-casting-c30acec56cef
<T extends View> T findViewById(int id)
?