Risposte:
È possibile utilizzare il parse
metodo statico daUri
Uri myUri = Uri.parse("http://stackoverflow.com")
Uri
classe con un parse
metodo developer.android.com/reference/android/net/Uri.html . Esiste anche una URI
classe developer.android.com/reference/java/net/URI.html senza parse
metodo. Quindi la classe giusta da usare è Uri
. Assicurati di avere l'importazione corretta
create
metodo. È semplice da usare come Uri. Quindi quale beneficio hai di Uri?
Se stai usando le estensioni Android di Kotlin e Kotlin, allora c'è un modo bellissimo di farlo.
val uri = myUriString.toUri()
Per aggiungere estensioni Kotlin ( KTX ) al progetto aggiungere quanto segue al build.gradle del modulo app
repositories {
google()
}
dependencies {
implementation 'androidx.core:core-ktx:1.0.0-rc01'
}
Puoi analizzare una stringa in un Uri usando Uri.parse () come mostrato di seguito:
Uri myUri = Uri.parse("http://stackoverflow.com");
Di seguito è riportato un esempio di come è possibile utilizzare l'Uri appena creato con un intento implicito. Da visualizzare in un browser sul telefono degli utenti.
// 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);
}
Che cosa hai intenzione di fare con l'URI?
Se ad esempio lo utilizzerai solo con un HttpGet, puoi semplicemente utilizzare la stringa direttamente durante la creazione dell'istanza di HttpGet.
HttpGet get = new HttpGet("http://stackoverflow.com");
android.widget.ImageView.setImageURI
no - quindi è una domanda perfettamente valida.
Il parser di Java in java.net.URI
non funzionerà se l'URI non è completamente codificato secondo i suoi standard. Ad esempio, provare per analizzare: http://www.google.com/search?q=cat|dog
. Verrà generata un'eccezione per la barra verticale.
urllib semplifica la conversione di una stringa in a java.net.URI
. Pre-elaborerà e sfuggirà all'URL.
assertEquals("http://www.google.com/search?q=cat%7Cdog",
Urls.createURI("http://www.google.com/search?q=cat|dog").toString());