Antworten:
Sie können die parsestatische Methode von verwendenUri
Uri myUri = Uri.parse("http://stackoverflow.com")
UriKlasse mit der parseMethode developer.android.com/reference/android/net/Uri.html . Es gibt auch eine URIKlasse developer.android.com/reference/java/net/URI.html ohne parseMethode. Die richtige Klasse ist also Uri.
createMethode verwenden. Es ist so einfach zu bedienen wie Uri. Welchen Nutzen haben Sie von Uri?
Wenn Sie Kotlin und Kotlin Android-Erweiterungen verwenden, gibt es eine schöne Möglichkeit, dies zu tun.
val uri = myUriString.toUri()
Um Kotlin-Erweiterungen ( KTX ) zu Ihrem Projekt hinzuzufügen, fügen Sie dem build.gradle Ihres App-Moduls Folgendes hinzu
repositories {
google()
}
dependencies {
implementation 'androidx.core:core-ktx:1.0.0-rc01'
}
Sie können einen String mit Uri.parse () wie unten gezeigt in einen Uri analysieren :
Uri myUri = Uri.parse("http://stackoverflow.com");
Das folgende Beispiel zeigt, wie Sie Ihren neu erstellten Uri implizit verwenden können. Wird in einem Browser auf dem Telefon des Benutzers angezeigt.
// 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);
}
NB: Es gibt einen Unterschied zwischen Androids URI und Uri .
Was machst du mit der URI?
Wenn Sie es beispielsweise nur mit einem HttpGet verwenden möchten, können Sie die Zeichenfolge direkt beim Erstellen der HttpGet-Instanz verwenden.
HttpGet get = new HttpGet("http://stackoverflow.com");
android.widget.ImageView.setImageURInicht - es ist also eine absolut gültige Frage.
Javas Parser-In java.net.URIschlägt fehl, wenn der URI nicht vollständig seinen Standards entspricht. Versuchen Sie beispielsweise zu analysieren : http://www.google.com/search?q=cat|dog. Für die vertikale Leiste wird eine Ausnahme ausgelöst.
urllib macht es einfach, einen String in einen zu konvertieren java.net.URI. Die URL wird vorverarbeitet und maskiert.
assertEquals("http://www.google.com/search?q=cat%7Cdog",
Urls.createURI("http://www.google.com/search?q=cat|dog").toString());