私はAndroidとKotlinの初心者です。サイトからHTMLファイルを取得してWebViewに表示するアプリを開発しています。検索された文字列を検索し、一致する文字列が見つかるまで画面をスクロールする機能をCtrl- F(検索コマンド)として構築する必要がありWebNavigators
ます。そして、次と前の試合へのボタン。
次のコードを試していますが、機能しません。
myWebView.findAllAsync("Test in HTML file")
myWebView.findNext(true)
誰かが私を助けたり、私に指示を与えたりできますか?
最後に、検索して検索した後、私は答えを見つけました。誰にとっても役立つかもしれないので、ここに投稿してください。この記事とこの質問に基づいて、私は自分のコードをビルドしました:
override fun onCreate(savedInstanceState: Bundle?) {
/// *... blah blah my code no related to this issue*
wv_contentArticle.loadUrl("file:///android_asset/articles/w.html") // loading file - just a test
sv_contentPage.isSubmitButtonEnabled
// bellow listen the searchview
sv_contentPage.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextChange(query: String): Boolean {
return true
}
override fun onQueryTextSubmit(query: String): Boolean {
if (!query.isEmpty()) {
sv_contentPage.clearFocus() // to hide keyboard
wv_contentArticle.findAllAsync(query) // look for string
try {
val m = WebView::class.java.getMethod("setFindIsUp",
java.lang.Boolean.TYPE) // THIS WAS MISSING, WITHOUT IT THIS WILL NOT WORK
m.invoke(wv_contentArticle, true) // THIS WAS MISSING, WITHOUT IT THIS WILL NOT WORK
} catch (ignored: Throwable) {
}
}
return true
}
})
bt_findNext.setOnClickListener { wv_contentArticle.findNext(true) } // find next one
bt_findPrevious.setOnClickListener { wv_contentArticle.findNext(false) } // find previous one
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加