gpt4 book ai didi

java - Android - 在 WebView 中实现 findOnPage

转载 作者:行者123 更新时间:2023-11-29 21:36:41 25 4
gpt4 key购买 nike

我正在编写一个使用 webview 显示 HTML 文件的应用程序。当用户点击搜索时,运行这段代码:

public void search() {   
container = (LinearLayout)findViewById(R.id.layoutId);

nextButton = new Button(this);
nextButton.setText("Next");
nextButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
mWebView.findNext(true);
}
});
container.addView(nextButton);

closeButton = new Button(this);
closeButton.setText("Close");
closeButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
container.removeAllViews();

}
});
container.addView(closeButton);

findBox = new EditText(this);
findBox.setMinEms(30);
findBox.setSingleLine(true);
findBox.setHint("Search");

findBox.setOnKeyListener(new OnKeyListener(){
@Override
public boolean onKey(View v, int keyCode, KeyEvent event){
if((event.getAction() == KeyEvent.ACTION_DOWN) && ((keyCode == KeyEvent.KEYCODE_ENTER))){
mWebView.findAll(findBox.getText().toString());

try{
Method m = WebView.class.getMethod("setFindIsUp", Boolean.TYPE);
m.invoke(mWebView, true);
}catch(Exception ignored){}
}
return false;
}
});

}

我使用的代码总体上运行良好,但在 Android 4.0 中存在一些错误。我想要一个在 Android 浏览器中呈现的解决方案,其中顶部栏成为搜索区域。

当我尝试实现它时,我失败了。有没有办法将它正确地实现到 Android 应用程序的 webview 中?我想要一个比我目前使用的设计更优雅、更实用的设计。

谢谢大家的回复

编辑

对于以后的用户,此bug仅存在于以下Android版本:

Platform Version        API Level   VERSION_CODE
Android 4.0.3, 4.0.4 15 ICE_CREAM_SANDWICH_MR1

最佳答案

其他帖子(例如 thisthis 讨论了这个问题。从这些来源得出我的答案,这样的事情应该可以解决问题:

try{   
Method m = WebView.class.getMethod("findAllAsync", new Class<?>[]{String.class});
m.invoke(mWebView, findBox.getText().toString());
} catch(Throwable notIgnored){
mWebView.findAll();
try {
m = WebView.class.getMethod("setFindIsUp", Boolean.TYPE);
m.invoke(mWebView, true);
} catch (Throwable ignored){}
}

关于java - Android - 在 WebView 中实现 findOnPage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18276738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com