2012-03-28 10 views
6

Ich versuche, eine TXT-Datei zu drucken, die meine Anwendung über FileWriter speichert.Drucken über Google Cloud Print

Die Datei speichert es ist /sdcard/StudentLatePass.txt

Wenn die Drucktaste angeklickt wird, wird die SD-Datei gespeichert wird, und dann muss es drucken. Ich habe die google cloud print tutorial verfolgt.

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(); 
    } 
} 

Für das Leben von mir, ich habe versucht, die docUri, docMimeType und DocTitle bis alles unter der Sonne zu ändern, um diese Datei zu drucken.

Mein aktueller modifizierten Code ist

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 

Ich bin immer noch rot squigglies unter dem docUri bekommen, und wenn ich die Absicht Print

+0

Über den "roten Squigglies" schweben und was heißt es? – prolink007

+0

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

Antwort

6

dieser Versuch passieren und sehen, was passiert:

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

Das sollte die ersten "roten Squigglies" auflösen.


Hier ist, was Sie für das URI-Problem versuchen könnten.

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

vwola, wissen Sie jetzt, worauf ich das docUri ändern muss? Die Datei, die es speichert, ist unter /sdcard/StudentLatePass.txt – UPGRAYEDD

+0

Ich habe einige weitere Informationen hinzugefügt, lassen Sie mich wissen, ob es funktioniert. Gib mir +1 wenn es funktioniert. =) – prolink007

+1

Ich denke, beide von euch haben gerade meinen Tag gemacht. – wHiTeHaT