2013-01-08 2 views
0

Im 이틀 전에 안드로이드 개발에 새로운 것이었고 pdf 형식으로 표시하여 데이터베이스에서 데이터를 검색하려고합니다. 전에 넷빈즈에서이 작업을 해봤지만 안드로이드에서 코드를 만들 때 오류가 발생합니다. 내 btnPdf에 대한 동작을 트리거하는 SQLitExample.java 파일과 내 pdf를 작성해야하는 createPDF.java 파일이 있습니다. 새로운 인 텐트를 생성하여 createPDF.java 파일을 호출 해 보았습니다. 내 createPDF.java 코드 여기 itext를 사용하여 안드로이드에서 pdf를 생성하는 방법

dalvikvm(6097): Could not find class 'com.example.hotornot.createPDF$1', referenced from method com.example.hotornot.createPDF.pdf

여기
package com.example.hotornot; 

import java.io.IOException; 
import java.sql.SQLException; 

import com.lowagie.text.DocumentException; 

import android.app.Activity; 
import android.app.Dialog; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

public class SQLitExample extends Activity implements OnClickListener { 

Button btnUpdate, btnView, btnPdf; 
EditText SQLName,SQLNum; 

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.sqliteexample); 
    btnUpdate = (Button) findViewById(R.id.btnUpdate); 
    SQLName = (EditText) findViewById(R.id.etSQLName); 
    SQLNum = (EditText) findViewById(R.id.etSQLNum); 

    btnView = (Button) findViewById(R.id.btnView); 
    btnPdf = (Button) findViewById(R.id.btnPdf); 
    btnPdf.setOnClickListener(this);   
    btnView.setOnClickListener(this); 
    btnUpdate.setOnClickListener(this); 
} 


public void onClick(View arg0){ 
    switch (arg0.getId()) 
    { 
    case R.id.btnUpdate: 
     boolean diditwork = true; 
     try{ 
     String name = SQLName.getText().toString(); 
     String num = SQLNum.getText().toString(); 

     Example entry = new Example(SQLitExample.this); 
     entry.open(); 
     entry.createEntry(name,num); 
     entry.close(); 

     }catch(Exception e){ 
      diditwork = false; 
      String error = e.toString(); 
      Dialog d = new Dialog(this); 
      d.setTitle("OW men! :("); 
      TextView tv = new TextView(this); 
      tv.setText(error); 
      d.setContentView(tv); 
      d.show(); 
     }finally{ 
      if(diditwork){ 
       Dialog d = new Dialog(this); 
       d.setTitle("yehey"); 
       TextView tv = new TextView(this); 
       tv.setText("Success"); 
       d.setContentView(tv); 
       d.show();  
      } 
     } 
    break; 

    case R.id.btnView: 
     Intent i = new Intent("com.example.hotornot.SQLView"); 
     startActivity(i); 
    break; 

    case R.id.btnPdf:  
     Intent i2 = new Intent("com.example.hotornot.createPDF"); 
     startActivity(i2); 
    break; 
    } 
} 
} 

SQLitExample.java

에 내 코드입니다 :

package com.example.hotornot; 

import java.io.FileOutputStream; 
import java.io.IOException; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 
import java.util.logging.Level; 
import java.util.logging.Logger; 

import android.app.Activity; 
import android.content.Context; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.os.Bundle; 
import android.widget.TextView; 

import com.lowagie.text.Cell; 
import com.lowagie.text.Document; 
import com.lowagie.text.DocumentException; 
import com.lowagie.text.Element; 
import com.lowagie.text.Font; 
import com.lowagie.text.FontFactory; 
import com.lowagie.text.Paragraph; 
import com.lowagie.text.Table; 
import com.lowagie.text.pdf.PdfPCell; 
import com.lowagie.text.pdf.PdfPTable; 
import com.lowagie.text.pdf.PdfWriter; 
import com.example.hotornot.*; 
import com.example.hotornot.Example.DbHelper; 

public class createPDF extends Activity { 

String DATABASE_NAME = Example.DATABASE_NAME; 
String DATABASE_TABLE = Example.DATABASE_TABLE; 
String KEY_NAME = Example.KEY_NAME; 
String KEY_NUM = Example.KEY_NUM; 
String KEY_ROWID = Example.KEY_ROWID; 

public void pdf() throws ClassNotFoundException, SQLException, DocumentException{ 

    try { 

     System.out.println("THIS SHOULD CREATE PDF!"); 
     Document document=new Document() {}; 
     PdfWriter.getInstance(document,new FileOutputStream("C:/Users/SERVER02/workspace/HotOrNot/samplePDF")); 
     document.open(); 

     PdfPTable table = new PdfPTable(3); 
     table.addCell("Row_Id"); 
     table.addCell("Name"); 
     table.addCell("Number"); 

     String[] columns = new String[]{ KEY_ROWID,KEY_NAME, KEY_NUM}; 

     Example entry = new Example(createPDF.this); 
     Cursor c = entry.ourdatabase.query(DATABASE_TABLE, columns, null, null, null, null, null); 
     String result = ""; 

     int iRow = c.getColumnIndex(KEY_ROWID); 
     int iName = c.getColumnIndex(KEY_NAME); 
     int iNum = c.getColumnIndex(KEY_NUM); 

     String rownum = c.getString(iRow); 
     String name = c.getString(iName); 
     String num = c.getString(iNum); 

     for (c.moveToFirst(); ! c.isAfterLast(); c.moveToNext()){ 
     result = result + rownum + " " + name + " " + num + "\n"; 
     table.addCell(c.getString(iRow)); 
     table.addCell(c.getString(iName)); 
     table.addCell(c.getString(iNum)); 
     } 

     document.add(table); 
     document.close(); 
     Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + "C:\\samplePDF.pdf"); 
    } catch (IOException ex) { 
     Logger.getLogger(createPDF.class.getName()).log(Level.SEVERE, null, ex); 
    } 
} 


} 
+0

또한 예제 코드는 질문하는 사람이 잘못된 라이브러리를 사용하고 있음을 보여줍니다. 공식 다운로드 사이트 : http://itextsupport.com/download/android.html 다음은 몇 가지 데모입니다. http://demo.itextsupport.com/Android/ –

답변

1

추가 난 내 btnPdf을 클릭하면 그러나 그것은 나에게 오류를 제공합니다 시작하려는 다른 활동 - Manifest.xml 파일의 createPDF.

Intent pdfIntent = new Intent(SQLitExample.this,createPDF.class); 
    startActivity(pdfIntent); 

안드로이드 자원 :

Intent Developer Docs

체크 아웃 위의 의도 생성자

<activity android:name=".createPDF" /> 

그리고 의도 구문은 사용하지 한, 다음과 같다. Intent(Context context, Class<?> cls) 생성자를 사용해야합니다.

관련 문제