Respostas:
Você pode usar o parse
método estático emUri
Uri myUri = Uri.parse("http://stackoverflow.com")
Uri
classe com um parse
método developer.android.com/reference/android/net/Uri.html . Há também uma URI
classe developer.android.com/reference/java/net/URI.html sem um parse
método. Portanto, a classe certa a ser usada é Uri
. Certifique-se de que você tem a importação correta
create
método É tão simples de usar quanto Uri. Então, qual o benefício que você tem de Uri?
Estou apenas usando o java.net
pacote . Aqui você pode fazer o seguinte:
String myUrl = "http://stackoverflow.com";
URI myURI = new URI(myUrl);
Se você estiver usando Kotlin e Kotlin android extensões, então não é uma bela maneira de fazer isso.
val uri = myUriString.toUri()
Para adicionar extensões Kotlin ( KTX ) ao seu projeto, adicione o seguinte ao build.gradle do módulo de aplicativo
repositories {
google()
}
dependencies {
implementation 'androidx.core:core-ktx:1.0.0-rc01'
}
Você pode analisar uma String em um Uri usando Uri.parse (), como mostrado abaixo:
Uri myUri = Uri.parse("http://stackoverflow.com");
A seguir, é apresentado um exemplo de como você pode usar seu Uri recém-criado em uma intenção implícita. Para ser visualizado em um navegador no telefone do usuário.
// 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);
}
O que você vai fazer com o URI?
Se você quiser usá-lo com um HttpGet, por exemplo, poderá usar a string diretamente ao criar a instância HttpGet.
HttpGet get = new HttpGet("http://stackoverflow.com");
android.widget.ImageView.setImageURI
, não - portanto, é uma pergunta perfeitamente válida.
O analisador de Java java.net.URI
falhará se o URI não estiver totalmente codificado para seus padrões. Por exemplo, tentar analisar: http://www.google.com/search?q=cat|dog
. Uma exceção será lançada para a barra vertical.
O urllib facilita a conversão de uma string em a java.net.URI
. Ele pré-processará e escapará da URL.
assertEquals("http://www.google.com/search?q=cat%7Cdog",
Urls.createURI("http://www.google.com/search?q=cat|dog").toString());