2015-02-04 68 views
-1

我想創建一個PdfDocument與用戶的視圖外側的機器人。基本上,我想生成與當前正在顯示的視圖不同的PdfDocument。一旦創建,它會通過電子郵件發送給用戶。我將我想要的所有內容都添加到了AlertDialog中,並且在解僱時,我將視圖保存爲pdf併發送電子郵件。創建Android PdfDocument用戶視圖外

final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
final View dialogView = inflater.inflate(R.layout.receipt_layout, null); 
... add stuff to view 
builder.setView(dialogView); 
final Dialog dialog = builder.create(); 
dialog.setOnDismissListener(new DialogInterface.OnDismissListener() { 
    @Override 
    public void onDismiss(DialogInterface dialog) { 
     ... save pdf and send email 
    } 
} 
dialog.show(); 
WindowManager wm = (WindowManager) getActivity().getSystemService(Context.WINDOW_SERVICE); 
Display display = wm.getDefaultDisplay(); 
DisplayMetrics outMetrics = new DisplayMetrics(); 
display.getMetrics(outMetrics); 
float density = getResources().getDisplayMetrics().density; 
float dpHeight = outMetrics.heightPixels/density; 
float dpWidth = outMetrics.widthPixels/density; 
dialog.getWindow().setLayout(370, (int)dpHeight); 
//dialog.dismiss(); // when uncommented, it produces a blank document 

這個工作正常當警報顯示,我手動觸發解僱。但是,當我在顯示對話框後添加dialog.dismiss()時,它會生成一個空白文檔。我不確定是否有一個事件可以用來指示視圖可見/用於創建PDF,然後觸發dismiss()?或者,也許有一種更簡單的方法在用戶的視野之外做到這一點(閃爍很好)?

回答

0

我會嘗試覆蓋對話框的onPause()方法,並將您的代碼保存爲PDF格式的屏幕。當一個活動被關閉時,第一個被調用的方法是onPause(),在這一點上活動仍然可見。下一個調用的方法是onStop();此時該活動不再可見。 Dialog.dismiss()會依次通過onPause(),onStop()和onDestroy()進行對話,因此當您到達上面代碼中的偵聽器時,對話框將不再存在。