我正在编写一个使用 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 应用程序的 web 视图中?我想要一个比我目前使用的更优雅、更实用的设计。
谢谢大家的回复
编辑
对于以后的用户,这个bug只存在于以下Android版本中:
Platform Version API Level VERSION_CODE
Android 4.0.3, 4.0.4 15 ICE_CREAM_SANDWICH_MR1