2017-04-16 96 views
0

我是新進入Android開發,並堅持this documentationthis tutorialAndroid的打印HTML文檔

基本上,我想打印一個網頁轉換成PDF。但是在使用文檔時,我遇到了getActivity()函數的錯誤。

而在第二個鏈接(教程)中,我得到錯誤PlaceholderFragment()

任何人都可以給我一個完整的例子來打印一個HTML頁面嗎?

我也想知道一個片段是什麼?我應該創建一個片段來使代碼有效嗎?以及如何做到這一點?

回答

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