Antworten:
Sie können die parse
statische Methode von verwendenUri
Uri myUri = Uri.parse("http://stackoverflow.com")
Uri
Klasse mit der parse
Methode developer.android.com/reference/android/net/Uri.html . Es gibt auch eine URI
Klasse developer.android.com/reference/java/net/URI.html ohne parse
Methode. Die richtige Klasse ist also Uri
.
create
Methode 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.setImageURI
nicht - es ist also eine absolut gültige Frage.
Javas Parser-In java.net.URI
schlä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());