我正在編寫一個使用webview來顯示HTML文件的應用程序。當用戶點擊搜索此代碼運行:Android - 將findOnPage實現爲WebView
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 Browser中提供的解決方案,頂部欄成爲搜索區域。
當我試圖執行此操作時,我失敗了。有沒有一種方法可以正確地將其實施到Android應用程序的webview中?我想要比我目前使用的更優雅和功能性的設計。
謝謝所有回覆
編輯
對於未來的用戶,這個bug只在下列Android版本存在:
Platform Version API Level VERSION_CODE
Android 4.0.3, 4.0.4 15 ICE_CREAM_SANDWICH_MR1
我試圖搜索Android源代碼,看看如何我無法找到接下來會發生什麼,我可以找到findOnPage()的唯一其他引用是在UI.java和browser.xml中,它們都不會導致我知道如何實現這一點 – user1363871