คำตอบสั้น ๆ
ใช้รูปแบบ WEB_URL ในคลาส Patterns
Patterns.WEB_URL.matcher(potentialUrl).matches()
มันจะกลับมาจริงถ้า URL ที่ถูกต้องและเป็นเท็จหาก URL ไม่ถูกต้อง
คำตอบยาว
ตั้งแต่ Android API ระดับ 8 มีรูปแบบWEB_URL การอ้างแหล่งที่มามัน "ตรงกับ [es] ส่วนใหญ่ของ RFC 3987" หากคุณกำหนดเป้าหมายระดับ API ที่ต่ำกว่าคุณสามารถคัดลอกรูปแบบจากแหล่งที่มาและรวมไว้ในแอปพลิเคชันของคุณได้ ฉันถือว่าคุณรู้วิธีใช้รูปแบบและตัวจับคู่ดังนั้นฉันจะไม่ลงรายละเอียดเพิ่มเติมที่นี่
นอกจากนี้คลาสURLUtilยังมีวิธีการที่มีประโยชน์เช่น:
คำอธิบายของวิธีการนั้นไม่ได้มีรายละเอียดมากนักดังนั้นคุณน่าจะดีที่สุดในการดูแหล่งที่มาและค้นหาว่าวิธีใดที่เหมาะกับวัตถุประสงค์ของคุณมากที่สุด
สำหรับเวลาที่จะเรียกใช้การตรวจสอบความถูกต้องมีความเป็นไปได้หลายประการ: คุณสามารถใช้ฟังก์ชันการเรียกกลับ EditText
หรือใช้TextWatcherซึ่งฉันคิดว่าน่าจะดีกว่า
อย่าใช้ URLUtil เพื่อตรวจสอบความถูกต้องของ URL ดังต่อไปนี้
URLUtil.isValidUrl(url)
เนื่องจากให้สตริง "http: //" เป็น URL ที่ถูกต้องซึ่งไม่เป็นความจริง