Eine Android App ist so strukturiert, dass sie viele Komponenten enthält: Aktivitäten, Fragmente, Dienste, Adapter, Modelle und Ihre Controller/Business-Klassen.
Jede Komponente extends
eine bestimmte Android-Klasse. Zum Beispiel erweitert Aktivitäten Activity
Klasse oder AppCompatActivity
Klasse. Fragment kann Fragment
Klasse erweitern, Service Service
-Klasse erweitert, und so weiter ...
Es gibt einige Methoden, die nur in der Aktivität verwendet werden können, weil sie Activity
Klassenmethoden (oder aufsteigend) sind.
Wenn Sie also die Methode getActivity()
verwenden müssen, die von einem Fragment verwendet werden kann, aber Sie nicht in einem Fragment sind, müssen Sie die Aktivität auf andere Weise erhalten.
Zum Beispiel:
private void doWebViewPrint() {
WebView webView = new WebView(getActivity());
}
sollte geworden:
private void doWebViewPrint(Activity activity) {
WebView webView = new WebView(activity);
}
und Sie haben es aus einer Tätigkeit rufen Aufruf:
webprinter.doWebViewPrint(this);
oder noch besser:
private void doWebViewPrint(Context context) {
WebView webView = new WebView(context);
}
und Sie haben es aus einer Tätigkeit Berufung nennen:
webprinter.doWebViewPrint(getApplicationContext());
Im zweiten Link, den Sie geschrieben habe, kann ich keine Erwähnung PlaceholderFragment finden.
Übrigens ist es nicht obligatorisch, Fragmente in Ihrer App zu verwenden, Sie können nur Aktivitäten verwenden, um eine funktionierende App zu haben. Fragmente sind nützlich, um verschiedene "Ansichten" in einem Container einer Aktivität zu verwalten. Wenn sie beispielsweise eine Navigationsleiste verwenden, haben sie ihren eigenen Lebenszyklus und können angehängt und entfernt werden, ohne die Aktivität zu ändern.
Weitere Informationen zum Drucken von HTML in PDF here finden Sie.