在我的Action Bar
中有一个按钮,您可以在其中添加收藏夹,但要做到这一点,我需要拥有mWebView
这个我无法从{{1}获得的对象尽管在FavoriteFragment
中使用相同的代码进入MainActivity
,但只要onclick触发它就会崩溃。
我怎样才能在我的活动中获得LoadUrlFragment
而不会崩溃?
MainActivity
mWebView
LoadUrlFragment
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
switch (item.getItemId()) {
case R.id.action_favoriten:
if (fragmentName.equals("LoadUrlFragment")) {
WebView mWebView = ((LoadUrlFragment) fragment).getMWebView();
mWebView.loadUrl("javascript:window.HTMLOUT.saveFavoriteData('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
} else if(fragmentName.equals("FavoritenFragment")) {
WebView mWebView = ((LoadUrlFragment) fragment).getMWebView();
mWebView.loadUrl("javascript:window.HTMLOUT.saveFavoriteData('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
} else {
Toast.makeText(activity, "Favoriten können hier nicht gesetzt werden", Toast.LENGTH_SHORT).show();
}
return true;
default:
return super.onOptionsItemSelected(item);
}
}
FavoriteFragment
public WebView getMWebView() {
return mWebView;
}
我热爱我的LoadUrlFragment
的FavoriteFragmentpublic WebView getMWebView() {
WebView mWebView = ((LoadUrlFragment) fragment).getMWebView();
return mWebView;
}
logcat的
fragment = new LoadUrlFragment();
Bundle bundle = new Bundle();
bundle.putString("url", allFavorite.get(position).getUrl());
fragment.setArguments(bundle);
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.replace(R.id.frame_container, fragment);
transaction.addToBackStack(null);
transaction.commit();
答案 0 :(得分:0)
我认为你应该改变
else if(fragmentName.equals("FavoritenFragment")) {
WebView mWebView = ((LoadUrlFragment) fragment).getMWebView();
到
else if(fragmentName.equals("FavoritenFragment")) {
WebView mWebView = ((FavoritenFragment) fragment).getMWebView();
这看起来像一个很好的副本&amp;基于粘贴的异常:))