2012-03-28 8 views
6

私のアプリケーションがFileWriter経由で保存する.txtファイルを印刷しようとしています。Googleクラウドプリントによる印刷

それは保存したファイルは、印刷ボタンをクリックすると、SDのファイルを保存し、それを印刷する必要がある/sdcard/StudentLatePass.txt

です。私はgoogle cloud print tutorialに従っています。私の人生のために

package com.android.upgrayeddapps.latepass; 



import java.io.File; 
import java.io.FileOutputStream; 
import java.io.OutputStreamWriter; 

import android.app.Activity; 
import android.app.AlertDialog; 
import android.content.Context; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.EditText; 
import android.widget.Button; 
import android.widget.Toast; 



public class StudentActivity extends Activity 
{ 
    EditText txtData; 
    Button btnPrintTardy; 

    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.student); 

     //Displays the Custom dialog for student login 
     AlertDialog.Builder builder; 
     AlertDialog alertDialog; 

     Context mContext = this; 
     LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE) ; 
     View layout = inflater.inflate(R.layout.studentlogin, null); 

     builder = new AlertDialog.Builder(mContext); 
     builder.setView(layout);    

     alertDialog = builder.create(); 
     alertDialog.show(); 

     txtData = (EditText) findViewById(R.id.editText1); 

     btnPrintTardy = (Button) findViewById(R.id.btnPrintTardy); 
     btnPrintTardy.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 
      // write on SD card file data in the text box 
      try { 
       File myFile = new File("/sdcard/StudentLatePass.txt"); 
       myFile.createNewFile(); 
       FileOutputStream fOut = new FileOutputStream(myFile); 
       OutputStreamWriter myOutWriter = 
             new OutputStreamWriter(fOut); 
       myOutWriter.append(txtData.getText()); 
       myOutWriter.close(); 
       fOut.close(); 
       Toast.makeText(getBaseContext(), 
         "Done writing SD 'StudentLatePass.txt'", 
         Toast.LENGTH_SHORT).show(); 
      } catch (Exception e) { 
       Toast.makeText(getBaseContext(), e.getMessage(), 
         Toast.LENGTH_SHORT).show(); 
      } 


     }// onClick 
     }); // btnWriteSDFile 


     btnPrintTardy.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      //Print using Google Cloud Print 
      Intent printIntent = new Intent(this, PrintDialogActivity.class); 
       printIntent.setDataAndType(docUri, "text/plain"); 
       printIntent.putExtra("title", "Student Late Pass"); 
       startActivity(printIntent); 

      }// onClick 
    });// btnPrintSDFile 




    } 

    // Clear all activities on the top of the stack and deliver the intent to (on top now) MainActivity with a new Intent 
    public void onGotoLatePassActiviy(View View) 
    { 
     Intent intent = new Intent(View.getContext(), LatePassActivity.class); 
     intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     StudentActivity.this.finish(); 
    } 
} 

私は、このファイルを印刷するには、太陽の下ですべてのものにdocUri、docMimeTypeとdocTitleを変更しようとしました。

私の現在の変更されたコードは

btnPrintTardy.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      //Print using Google Cloud Print 
      Intent printIntent = new Intent(this, PrintDialogActivity.class); 
       printIntent.setDataAndType(docUri, "text/plain"); 
       printIntent.putExtra("title", "Student Late Pass"); 
       startActivity(printIntent); 

      }// onClick 
    });// btnPrintSDFile 

が、私はまだdocUriの下に赤いsquiggliesを取得していますし、私はPrint

+0

"red squigglies"の上にカーソルを合わせると何が表示されますか? – prolink007

+0

http://i.imgur.com/9RBOr.jpg – UPGRAYEDD

答えて

6

への意思を渡す際に、これを試してみて、何が起こるかを参照してください。

Intent printIntent = new Intent(StudentActivity.this, PrintDialogActivity.class);

これは最初の「赤い塊」を解決するはずです。


ここでは、URIの問題を解決する方法を説明します。

File file = new File("/sdcard/StudentLatePass.txt"); 
intent.setDataAndType(Uri.fromFile(file), "text/*"); 
+0

vwola、今あなたはdocUriを変更する必要があることを知っていますか?保存するファイルは/sdcard/StudentLatePass.txtにあります。 – UPGRAYEDD

+0

さらに詳しい情報を追加しましたが、動作しているかどうか教えてください。それが動作する場合+1を与えます。 =) – prolink007

+1

皆さんは私の一日をちょうど作ったと思います。 – wHiTeHaT

関連する問題