我是Android开发的新手,并坚持使用this documentation和this tutorial
基本上,我想将网页打印成PDF。但是在使用文档时,我遇到了getActivity()
函数的错误。
在第二个链接(教程)中,我收到PlaceholderFragment()
错误。
有人能给我一个打印HTML页面的完整示例吗?
我也想知道片段是什么?我应该创建一个片段来使代码工作吗?怎么做?
答案 0 :(得分:0)
Android应用程序的结构包含许多组件:活动,片段,服务,适配器,模型和控制器/业务类。
每个组件extends
一个特定的android类。
例如,活动扩展Activity
类或AppCompatActivity
类。
片段可以扩展Fragment
类,服务扩展Service
类,依此类推......
有些方法只能在活动中使用,因为它们是Activity
类方法(或上升方法)。
因此,如果您需要使用片段可以使用的getActivity()
方法,但是您不在片段中,则需要以其他方式获取活动。
例如:
private void doWebViewPrint() {
WebView webView = new WebView(getActivity());
}
应该成为:
private void doWebViewPrint(Activity activity) {
WebView webView = new WebView(activity);
}
你必须从一个叫做的活动中调用它:
webprinter.doWebViewPrint(this);
甚至更好:
private void doWebViewPrint(Context context) {
WebView webView = new WebView(context);
}
你必须从一个叫做的活动中调用它:
webprinter.doWebViewPrint(getApplicationContext());
在你写的第二个链接中,我找不到PlaceholderFragment的任何提及。
顺便说一句,在您的应用中不必使用片段,您只需使用活动来创建有效的应用。片段对于管理不同的视图非常有用。在活动的同一容器中,例如使用导航抽屉时,它们有自己的生命周期,可以在不改变活动的情况下进行连接和分离。
您可以找到有关如何将HTML打印为PDF here的更多信息。