我正在寫一個Android應用程序(android 2.3.3/API 10),通過WebView加載網站。看看android.webkit.webview源代碼,特別是onSavePassword(...)(你可以找到它HERE)我想發起我自己的自定義AlertDialog而不是股票一個 並應用我的更改,或者我必須編輯android.webkit.webview源碼並重新編譯android.jar?定製Android Webview類
我應該早點解釋說,我試圖這樣的事沒有成功:
class MyWebView extends WebView {
public MyWebView(Context context) {
super(context);
}
@Override
boolean onSavePassword(String schemePlusHost, String username, String password, final Message resumeMsg) {
boolean rVal = false;
if (resumeMsg == null) {
// null resumeMsg implies saving password silently
} else {
final Message remember = mPrivateHandler.obtainMessage(REMEMBER_PASSWORD);
remember.getData().putString("host", schemePlusHost);
remember.getData().putString("username", username);
remember.getData().putString("password", password);
remember.obj = resumeMsg;
final Message neverRemember = mPrivateHandler.obtainMessage(NEVER_REMEMBER_PASSWORD);
neverRemember.getData().putString("host", schemePlusHost);
neverRemember.getData().putString("username", username);
neverRemember.getData().putString("password", password);
neverRemember.obj = resumeMsg;
new AlertDialog.Builder(getContext())
.setTitle("My Custom Title")
.setMessage("My Custom Save/Don't Save Dialog Message")
.setPositiveButton(com.android.internal.R.string.save_password_notnow,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
resumeMsg.sendToTarget();
}
})
.setNeutralButton(com.android.internal.R.string.save_password_remember,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
remember.sendToTarget();
}
})
.setNegativeButton(com.android.internal.R.string.save_password_never,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
neverRemember.sendToTarget();
}
})
.setOnCancelListener(new OnCancelListener() {
public void onCancel(DialogInterface dialog) {
resumeMsg.sendToTarget();
}
}).show();
// Return true so that WebViewCore will pause while the dialog is
// up.
rVal = true;
}
return rVal;
}
Eclipse的正當要求「的方法onSavePassword類型MainActivity.MyWebView的(字符串,字符串,字符串,消息)必須重寫超類方法「,並告訴我刪除@Override。並且更改後的對話框不需要。
再次感謝
編輯
我想改變,即方法。 android webview.class中的onSavePassword(...)沒有與其關聯的修飾符。我認爲這意味着這種方法只能被駐留在相同包中的類訪問。正如我之前提到的,我嘗試創建自己的webview類來擴展庫存類,但它沒有找到onSavePassword。任何想法,或webView類的其他擴展的例子可能指向正確的方向?
感謝您的提示,我只是嘗試執行@Override是這樣的:私人類MyWebViewClient擴展WebViewClient {} – 2012-02-16 19:40:34
重寫是不是繼承類。Overiding意味着在子類中重新定義一個從sueprclass繼承的方法。 – Snicolas 2012-02-16 20:46:26