Yanıtlar:
Şu parse
yöntemlerden statik yöntemi kullanabilirsiniz :Uri
Uri myUri = Uri.parse("http://stackoverflow.com")
Uri
sahip bir sınıf var . Bir de bulunmaktadır sınıf developer.android.com/reference/java/net/URI.html bir olmadan yöntemle. Kullanılacak doğru sınıf . Doğru içe parse
URI
parse
Uri
create
yöntemi kullanabilirsiniz . Uri kadar kullanımı basit. Peki Uri'den ne faydası var?
Eğer kullanıyorsanız KOTLIN ve Kotlin uzantıları android, daha sonra bunu yapmanın güzel bir yolu yoktur.
val uri = myUriString.toUri()
Projenize Kotlin uzantıları ( KTX ) eklemek için uygulama modülünüzün build.gradle öğesine aşağıdakileri ekleyin
repositories {
google()
}
dependencies {
implementation 'androidx.core:core-ktx:1.0.0-rc01'
}
Aşağıda gösterildiği gibi Uri.parse () öğesini kullanarak bir Dizeyi bir Uri'ye ayrıştırabilirsiniz :
Uri myUri = Uri.parse("http://stackoverflow.com");
Aşağıda, yeni oluşturulan Uri'nizi örtük bir amaçta nasıl kullanabileceğinize bir örnek verilmiştir. Kullanıcıların telefonundaki bir tarayıcıda görüntülenecek.
// 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);
}
URI ile ne yapacaksınız?
Örneğin sadece bir HttpGet ile kullanacaksanız, doğrudan HttpGet örneğini oluştururken dizeyi kullanabilirsiniz.
HttpGet get = new HttpGet("http://stackoverflow.com");
android.widget.ImageView.setImageURI
olmayacak - bu yüzden geçerli bir soru.
java.net.URI
URI standartlarına tam olarak kodlanmamışsa Java'nın ayrıştırıcısı başarısız olur. Örneğin, ayrıştırmak deneyin: http://www.google.com/search?q=cat|dog
. Dikey çubuk için bir istisna atılacaktır.
urllib bir dizeyi a'ya dönüştürmeyi kolaylaştırır java.net.URI
. URL'yi önceden işleme koyacak ve kaçacaktır.
assertEquals("http://www.google.com/search?q=cat%7Cdog",
Urls.createURI("http://www.google.com/search?q=cat|dog").toString());