【发布时间】:2019-01-24 09:26:37
【问题描述】:
我今年 16 岁,正在努力学习 Kotlin,我很新。我想创建一个搜索栏,既可以搜索 Google,也可以打开您输入的任何 URL。我试图使用 if else 语句,例如:
-
if前三个字母是“www”。然后使用等于“https://”的字符串 url, -
else使用等于“google.com/search?q="; 的字符串 start_url。
我只是不知道该怎么做,我已经尝试在互联网上寻求帮助,但我无法做到。
URLUtil.isValidUrl(url) 不起作用,因为它仍然只加载 Google 搜索
我欢迎任何 cmets 尝试帮助我进一步学习和改进我的代码,即使它与我的问题无关。指出我的代码中的任何错误或可以改进的地方,我知道它并不完美,谢谢!
package com.example.corie.quicklinks.mainpages
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.support.asynclayoutinflater.R.id.text
import android.webkit.WebChromeClient
import android.webkit.WebViewClient
import com.example.corie.quicklinks.R
import com.example.corie.quicklinks.R.string.start_url
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//------------------WEBVIEW-----------------//
webViewOne.webChromeClient = WebChromeClient()
webViewOne.isVerticalScrollBarEnabled = false
webViewOne.run{
webViewOne.loadUrl("https://" + getString(start_url))
}
goBtn.setOnClickListener{
webViewOne.loadUrl("https://www.google.com/search?q=" + editText.text.toString())
}
backBtn.setOnClickListener {
if (webViewOne.canGoBack())
webViewOne.goBack()
}
nextBtn.setOnClickListener {
if (webViewOne.canGoForward())
webViewOne.goForward()
}
//------------------WEBVIEW-----------------//
}
}
【问题讨论】:
-
我试图使用 if else 语句,比如前三个字母是“www”。然后使用等于“https://”的字符串 url,否则使用等于“google.com/search?q=”的字符串 start_url。我只是不知道该怎么做,我尝试在互联网上寻求帮助,但我无法
-
所以基本上你需要验证一个字符串是否是一个有效的url?看看这个stackoverflow.com/questions/4905075/…
-
您可以做的一件事是将搜索栏的内容与模式相匹配,例如like in this question。如果匹配,则加载 url,如果不匹配,则执行查询。不幸的是,我无法在代码方面提供太多帮助,但这应该是一个很好的起点
标签: android webview kotlin searchbar