【发布时间】:2013-12-24 04:05:29
【问题描述】:
简单的问题,我如何从 shouldOverrideUrlLoading 内部调用函数/方法? 我正在寻找像 Qt 的 Signal and Slots 这样的东西,这样我就可以绕过那个 OO-Can-Not-See-Your-Parent-Jail。遗憾的是,使用静态不是一种选择,因为那时我无法再从该静态访问 UI。并且将我想要访问的 UI 元素设置为静态元素也不起作用,因为 Android API 一直在更改这些元素,从而使静态表示无效。
这就是我现在拥有的:
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView wv = (WebView) this.findViewById(R.id.webView);
wv.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView wv, String url)
{
//TODO: Call doUrlHandling somehow...
//wv.loadData("URL:" + url, "text/html", "UTF-8");
return true;
}
});
wv.loadUrl("file:///android_asset/startup.html");
}
public void doUrlHandling(String url)
{ }
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
【问题讨论】: