我在这里要做的是。我在我的SD卡中找到了Pdf文件夹并单击该文件,然后使用Adobe Reader完成操作。我成功完成了读取SD卡选项,它将布局中的所有pdf文件显示为gridview。但是,当我单击pdf文件时,它会打开Adobe阅读器,但无法打开该文件。它说“文件无法打开,因为它不是有效的pdf文档”。这是我的代码 -
以下是查找文件和放大器的代码。 SD卡中的文件夹
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();
}
这是onclick方法的部分
// 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 :(得分: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);
}