【发布时间】:2020-12-16 07:32:19
【问题描述】:
我有一个应用程序,它有一个片段,旨在显示通过单击按钮选择的 pdf。我已经实现了这个方法,但是如何在应该调用这个方法的不同类中调用这个片段函数?
这个方法在我尝试到达片段函数的类中定义:
fun importPdf(fragment: Fragment, label: DocumentLabel?) {
val pickPdfDocument =
fragment.registerForActivityResult(ActivityResultContracts.GetContent()) { uri ->
if (uri == null) {
KycEventBus.post(DocumentImportEvent(false))
}
uri?.let {
Log.d(TAG, "ImportPdf - ActivityResultContracts.GetContent() successful.")
PdfViewer.displayFromUri(it) // Here is where I try to reach
val documentPdfFile = DocumentUtil.saveUriAsTemporary(
context = fragment.requireContext(),
uri = uri,
subFolder = cacheFolderName + File.separator + cachePdfFolderName,
label = label?.name,
documentType = DocumentUtil.DocumentType.PDF
)
documentPhotoFilePath = documentPdfFile.path
Log.d(TAG, "documentPhotoFile path: " + documentPdfFile.path)
KycEventBus.post(DocumentImportEvent(true))
}
}
pickPdfDocument.launch("application/pdf")
}
这个函数在片段中:
public fun displayFromUri(uri: Uri) {
pdfFilePath = getFileName(uri)
pdfView_fragment_pdfviewer!!.fromUri(uri)
.defaultPage(pageNumber)
.onPageChange(this)
.enableAnnotationRendering(true)
.onLoad(this)
.scrollHandle(DefaultScrollHandle(context))
.spacing(10) // in dp
.onPageError(this)
.load()
}
【问题讨论】:
标签: android pdf android-fragments fragment