2015-02-02 4 views
0

여기서는 그 일을하려고합니다. 내 SD 카드에있는 Pdf 파일 폴더를 찾고 파일을 클릭하면 Adobe Reader를 사용하여 작업을 완료합니다. 성공적으로 읽기 SD 카드 옵션을 완료하고 레이아웃의 모든 PDF 파일을 gridview로 표시합니다. 그러나 pdf 파일을 클릭하면 Adobe Reader가 열리지 만 파일을 열 수는 없습니다. "유효한 pdf 문서가 아니기 때문에 문서를 열 수 없습니다"라는 메시지가 표시됩니다. 여기에 여기에 인 텐트를 사용하여 파일을 열 수 없음

여기

public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle savedInstanceState) 
{ 
    View view =inflater.inflate(R.layout.magica_pdf_layout, container, false); 

    // Check for SD Card 
    if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) 
    { 
     Toast.makeText(PdfFragment.this.getActivity(), "Error! No SDCARD Found!", Toast.LENGTH_LONG).show(); 

    } 

    else 
    { 
     // Locate folder in your SD Card 
     file = new File(Environment.getExternalStorageDirectory()+ File.separator + "Book"); 

     // Create a new folder if no folder named exist 
     file.mkdirs(); 


    } 

SD 카드에 파일 & 폴더를 찾기위한 코드입니다 온 클릭 방법

// Capture gridview item click 
    grid.setOnItemClickListener(new OnItemClickListener() 
    { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view,int position, long id) 
     { 
      // get clicked file name from gridview 
      String pdfname=(String)parent.getItemAtPosition(position); 
      //prepare pdf file url 
      selectedFile = new File(file.getAbsolutePath()+File.separator +pdfname+".pdf"); 
      Intent pdfIntent = new Intent(); 
      pdfIntent.setAction(android.content.Intent.ACTION_VIEW); 
      pdfIntent.setDataAndType(Uri.fromFile(selectedFile), "application/pdf"); 
      startActivity(pdfIntent); 
     } 
    }); 
+0

어떻게'file' 경로를 준비하고 있습니까? –

+0

file = 새 파일 (Environment.getExternalStorageDirectory() + File.separator + "Book"); file.mkdirs(); – Hasan

+0

문제를 이해하기 위해 게시물에 더 많은 코드를 편집하십시오 –

답변

0

의 부품 내 코드 -이다 문서는 할 수 없다 유효한 PDF 문서가 아니기 때문에 열었습니다.

pdf 파일 경로를 전달하지 않고 현재 모든 파일이있는 폴더 경로 만 전달합니다. 다음과 같이하십시오 :

@Override 
    public void onItemClick(AdapterView<?> parent, 
           View view,int position, long id) 
    { 
     // get clicked file name from gridview 
     String pdfname=(String)parent.getItemAtPosition(position); 
     // prepare pdf file url 
     File selectedFile = new File(file.getAbsolutePath()+"/"+pdfname+".pdf"); 
     Intent pdfIntent = new Intent(); 
     pdfIntent.setAction(android.content.Intent.ACTION_VIEW); 
     pdfIntent.setDataAndType(Uri.fromFile(selectedFile), "application/pdf"); 
     startActivity(pdfIntent); 
    } 
+0

도움이되지 않을 수 있습니다 죄송합니다. 당신이 볼 수 있듯이 전에 파일 경로를 declear file = new File (Environment.getExternalStorageDirectory() + File.separator + "Book"); 그래서 쓸 필요가 없다고 생각합니다. 파일 selectedFile = 새 파일 (file.getAbsolutePath() + "/"+ pdfname + ".pdf"); 다시. – Hasan

+0

URI 개체가 PDF 대신 폴더 (책)를 참조하고 있습니다. prosper가 말한 것처럼 PDF에 경로를 추가하십시오. 또한 PDF가 Book 디렉토리에 있는지 확인하십시오. – gn1

+0

내 소스 코드를 다시 편집합니다. 내가 응용 프로그램을 실행할 때 닫혔다. 그것에 대한 간단한 설명을 나에게 준다. 나에게 도움이 될 것입니다 – Hasan

관련 문제