我在主要活动中创建了一个Webview,并加载了相关的html文件。当我点击设置图标时,我启动另一个活动(SettingsActivity),我希望能够从SettingsActivity更改WebView。
EG。在我的SettingsActivity中,我想更改字体大小或对其执行任何操作:
MainActivity mActivity= new MainActivity();
mActivity.myWebView.getSettings().setDefaultFontSize(8);
在这种情况下,我得到一个空指针异常。那么如何访问/将我的活动中创建的webView数据传递给另一个。
谢谢, 马特
答案 0 :(得分:0)
在您的情况下,您应该在启动startActivityForResult()
时运行SettingsActivity
,并通过返回Intent
发送捆绑的更改数据。阅读涵盖活动之间双向沟通的官方docs。
答案 1 :(得分:0)
您可以通过以下方法实现此目的: 1.您可以在onActivityResult上使用更改webView设置,方法是将活动设置为startActivityforResult并传递设置活动的结果。
您可以创建ResultReciever并将对Intent的引用传递给startActivity,并使用Bundle将消息从设置活动传递到MainActivity。请在Android中使用ResultReciever。
您可以创建静态变量或共享首选项,并将其视为更新webview的信号,并在完成SettingActivity后在onResume方法内再次恢复MainActivity时进行更改。
您可以在MainActivity中注册自定义广播,并从SettingActivity发送广播到更新webView。