Відповіді:
Ви можете використовувати parse
статичний метод відUri
Uri myUri = Uri.parse("http://stackoverflow.com")
Uri
клас з parse
методом developer.android.com/reference/android/net/Uri.html . Існує також URI
клас developer.android.com/reference/java/net/URI.html без parse
методу. Тож правильний клас для використання є Uri
. Переконайтеся, що у вас правильний імпорт
create
метод. Це так само просто, як і Урі. То яка вигода у вас від Урі?
Якщо ви використовуєте андроїдні розширення Kotlin і Kotlin, тоді є прекрасний спосіб зробити це.
val uri = myUriString.toUri()
Щоб додати розширення Kotlin ( KTX ) до свого проекту, додайте наступне до build.gradle модуля додатка
repositories {
google()
}
dependencies {
implementation 'androidx.core:core-ktx:1.0.0-rc01'
}
Ви можете проаналізувати рядок до Uri, скориставшись Uri.parse (), як показано нижче:
Uri myUri = Uri.parse("http://stackoverflow.com");
Нижче наведено приклад того, як можна використовувати новостворений Uri в неявному намірі. Для перегляду в браузері на телефоні користувачів.
// 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);
}
Що ти будеш робити з URI?
Якщо ви просто збираєтеся використовувати його, наприклад, з HttpGet, ви можете просто використовувати рядок безпосередньо під час створення екземпляра HttpGet.
HttpGet get = new HttpGet("http://stackoverflow.com");
android.widget.ImageView.setImageURI
, не буде - значить, це цілком справедливе питання.
Аналізатор Java java.net.URI
не вдасться виконати помилку, якщо URI не буде повністю закодований у відповідності зі своїми стандартами. Наприклад, спробуйте розібрати: http://www.google.com/search?q=cat|dog
. Виняток буде закинуто для вертикальної смуги.
urllib дозволяє легко перетворити рядок в a java.net.URI
. Це буде попередньо обробити та вилучити URL-адресу.
assertEquals("http://www.google.com/search?q=cat%7Cdog",
Urls.createURI("http://www.google.com/search?q=cat|dog").toString());