私は を持っておりViewPager
、各ビューはWebView
です。WebViews
ユーザーが のいずれかのリンクをクリックした場合に、 のタイトルをActionbar
現在の Web ページに設定したいと思います。
そのために使用できることを望んshouldOverrideUrlLoading
でいましたが、ページ タイトルは常に前のページです。したがって、ユーザーがリンク 1、リンク 2、リンク 3 の順にクリックすると、リンク 2 のタイトルがページ 3 に表示されますActionbar
。
にタイトル設定コードを入れると、パフォーマンスのために前/次のビューを実行するためonPageFinished
、ページ タイトルが の次のビューに設定されます。ViewPager
ViewPager
断片
public class Browser extends SherlockFragment {
private OnBrowserSetTitle mBrowserSetTitle;
@Override
public void onAttach(Activity act) {
super.onAttach(act);
mBrowserSetTitle = (OnBrowserSetTitle)act;
}
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
activity = getActivity();
setHasOptionsMenu(true);
mWebView = (WebView)getView().findViewById(R.id.webview);
mWebView.loadUrl("http://www.google.com");
mWebView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
if (view.getTitle() != null && view.getTitle().length() > 0)
{
mBrowserSetTitle.onBrowserSetTitle(mTitle);
}
return true;
}
});
}
}
アクティビティ
public class BrowserPager extends SherlockFragmentActivity implements Interfaces.OnBrowserSetTitle {
@Override
public void onCreate(final Bundle icicle)
{
super.onCreate(icicle);
setContentView(R.layout.browser_pager);
}
@Override
public void onBrowserSetTitle(String title) {
getSupportActionBar().setTitle(title);
}
}