Réponses:
Vous pouvez utiliser la parse
méthode statique deUri
Uri myUri = Uri.parse("http://stackoverflow.com")
Uri
classe avec une parse
méthode developer.android.com/reference/android/net/Uri.html . Il existe également une URI
classe developer.android.com/reference/java/net/URI.html sans parse
méthode. La bonne classe à utiliser est donc Uri
. Assurez-vous d'avoir la bonne importation
create
méthode. C'est aussi simple à utiliser que Uri. Alors, quel avantage tirez-vous d'Uri?
Si vous utilisez les extensions Android Kotlin et Kotlin, il existe une belle façon de le faire.
val uri = myUriString.toUri()
Pour ajouter des extensions Kotlin ( KTX ) à votre projet, ajoutez ce qui suit au build.gradle de votre module d'application
repositories {
google()
}
dependencies {
implementation 'androidx.core:core-ktx:1.0.0-rc01'
}
Vous pouvez analyser une chaîne en un Uri en utilisant Uri.parse () comme indiqué ci-dessous:
Uri myUri = Uri.parse("http://stackoverflow.com");
Voici un exemple de la façon dont vous pouvez utiliser votre Uri nouvellement créé dans un intent implicite. À afficher dans un navigateur sur le téléphone des utilisateurs.
// 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);
}
Qu'allez-vous faire avec l'URI?
Si vous allez simplement l'utiliser avec un HttpGet par exemple, vous pouvez simplement utiliser la chaîne directement lors de la création de l'instance HttpGet.
HttpGet get = new HttpGet("http://stackoverflow.com");
android.widget.ImageView.setImageURI
ce ne sera pas le cas - c'est donc une question parfaitement valable.
L'analyseur de Java java.net.URI
échouera si l'URI n'est pas entièrement codé selon ses normes. Par exemple, essayez d'analyser: http://www.google.com/search?q=cat|dog
. Une exception sera lancée pour la barre verticale.
urllib facilite la conversion d'une chaîne en un fichier java.net.URI
. Il prétraitera et échappera à l'URL.
assertEquals("http://www.google.com/search?q=cat%7Cdog",
Urls.createURI("http://www.google.com/search?q=cat|dog").toString());