Làm cách nào tôi có thể chuyển đổi Chuỗi thành Uri trong Java (Android)? I E:
String myUrl = "http://stackoverflow.com";
myUri = ???;
Làm cách nào tôi có thể chuyển đổi Chuỗi thành Uri trong Java (Android)? I E:
String myUrl = "http://stackoverflow.com";
myUri = ???;
Câu trả lời:
Bạn có thể sử dụng parse
phương thức tĩnh từUri
Uri myUri = Uri.parse("http://stackoverflow.com")
Uri
lớp với một parse
phương thức developer.android.com/reference/android/net/Uri.html . Ngoài ra còn có một URI
lớp developer.android.com/reference/java/net/URI.html mà không có parse
phương thức. Vì vậy, lớp đúng để sử dụng là Uri
. Hãy chắc chắn rằng bạn đã nhập chính xác
create
phương thức. Nó đơn giản để sử dụng như Uri. Vậy bạn có lợi ích gì từ Uri?
Nếu bạn đang sử dụng Kotlin và Kotlin android phần mở rộng, sau đó có một cách đẹp để làm điều này.
val uri = myUriString.toUri()
Để thêm tiện ích mở rộng Kotlin ( KTX ) vào dự án của bạn, hãy thêm phần sau vào build.gradle của mô-đun ứng dụng của bạn
repositories {
google()
}
dependencies {
implementation 'androidx.core:core-ktx:1.0.0-rc01'
}
Bạn có thể phân tích Chuỗi thành Uri bằng cách sử dụng Uri.parse () như hiển thị bên dưới:
Uri myUri = Uri.parse("http://stackoverflow.com");
Sau đây là một ví dụ về cách bạn có thể sử dụng Uri mới tạo của mình trong một mục đích ngầm. Để được xem trong một trình duyệt trên điện thoại người dùng.
// Creates a new Implicit Intent, passing in our Uri as the second paramater.
Intent webIntent = new Intent(Intent.ACTION_VIEW, myUri);
// Checks to see if there is an Activity capable of handling the intent
if (webIntent.resolveActivity(getPackageManager()) != null){
startActivity(webIntent);
}
Bạn sẽ làm gì với URI?
Ví dụ: nếu bạn chỉ sử dụng nó với một HTTPGet, bạn chỉ có thể sử dụng chuỗi trực tiếp khi tạo đối tượng HttpGet.
HttpGet get = new HttpGet("http://stackoverflow.com");
android.widget.ImageView.setImageURI
sẽ không - vì vậy đây là một câu hỏi hoàn toàn hợp lệ.
Trình phân tích cú pháp của Java java.net.URI
sẽ thất bại nếu URI không được mã hóa hoàn toàn theo các tiêu chuẩn của nó. Ví dụ: cố gắng phân tích : http://www.google.com/search?q=cat|dog
. Một ngoại lệ sẽ được ném cho thanh dọc.
urllib giúp dễ dàng chuyển đổi một chuỗi thành a java.net.URI
. Nó sẽ xử lý trước và thoát URL.
assertEquals("http://www.google.com/search?q=cat%7Cdog",
Urls.createURI("http://www.google.com/search?q=cat|dog").toString());