Я работал над преобразованием HTML-файла в PDF-файл в Native Android. это работает, как я ожидал. когда я хочу переключиться на Xamarin.Android, я не могу конвертировать обратный вызов.
printAdapter.onLayout(null, printAttributes, null, new PrintDocumentAdapter.LayoutResultCallback() {
@Override
public void onLayoutFinished(PrintDocumentInfo info, boolean changed) {
Log.e("Finish", "onLayoutFinished" );
ParcelFileDescriptor fileDescriptor = getOutputFile(path, fileName);
if (null == fileDescriptor) {
if (mListener != null) {
mListener.onError();
}
return;
}
printAdapter.onWrite(new PageRange[]{PageRange.ALL_PAGES}, fileDescriptor, new CancellationSignal(), new PrintDocumentAdapter.WriteResultCallback() {
@Override
public void onWriteFinished(PageRange[] pages) {
Log.e("Finish", "onWriteFinished" );
super.onWriteFinished(pages);
if (mListener != null) {
mListener.onWriteFinished((new File(path, fileName)).getAbsolutePath());
}
}
});
}
}, null);
Код выше, который я сделал на родном Android с Java.
printAdapter.onWrite(new PageRange[]{PageRange.ALL_PAGES}, fileDescriptor, new CancellationSignal(), new PrintDocumentAdapter.WriteResultCallback() {
@Override
public void onWriteFinished(PageRange[] pages) {
Log.e("Finish", "onWriteFinished" );
super.onWriteFinished(pages);
if (mListener != null) {
mListener.onWriteFinished((new File(path, fileName)).getAbsolutePath());
}
}
});
WriteResultCallback , когда я хочу вызвать этот обратный вызов в Xamarin.Android. Это показывает необходимость создания конструктора. так что я создал класс и унаследовал WriteResultCallback в новом классе с помощью конструктора.
public class MyWriteResultCallbackt : WriteResultCallback
{
public MyWriteResultCallbackt(IntPtr javaReference, JniHandleOwnership transfer) : base(javaReference, transfer)
{
}
public override void OnWriteFinished(PageRange[] pages)
{
base.OnWriteFinished(pages);
}
}
После этого, когда я компилирую код, я получаю сообщение об ошибке компиляции
/ Users / яблоко / Проекты / Пример / образец / объект / Debug / Android / SRC / md5a4074a9abd9040c154db052535adf080 / MyWriteResultCallbackt.java (8,8):
Ошибка: ошибка: WriteResultCallback () не является публичной в
WriteResultCallback; недоступен извне
Класс MyWriteResultCallbackt (Sample)
Может кто-нибудь сообщить мне, нахожусь ли я на правильном пути или нет, если есть способ выполнить преобразование файлов (HTML в PDF) в Xamarin.Android.please сообщите мне способ.