如何从assets子文件夹中读取PDF文件

时间:2015-01-06 05:41:21

标签: java android assets

我正在开发一个教育应用程序,其中包含PDF文件形式的多个试卷 PDF文件放在Assets子文件夹中并显示在列表视图中。到这里我的代码工作正常。但当我点击列表项时,PDF文件不显示显示错误PDF文件无法打开(路径错误)

提前致谢!

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.pdfviewinfo);

     AssetManager asset = getAssets();
        try {
            final String[] arrdata = asset.list("pdffolder");
            List<String> pdflist = new ArrayList<String>();
            int size = arrdata.length;
            for(int i = 0;i<size;i++)
            {
              if(arrdata[i].contains(".pdf"))
              {
                pdflist.add(arrdata[i]); 
               }
            }
            ArrayAdapter<String> adapter= new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,pdflist);
            ListView listView = (ListView) findViewById(R.id.listView1);
            listView.setAdapter(adapter);
                    listView.setOnItemClickListener(new OnItemClickListener() {

            @Override
             public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
                 valueinfo = (String)parent.getItemAtPosition(position); 
                 File file = new File("file:///android_asset/pdffolder/"+valueinfo);
              Log.i("testing", ""+file);
                    Intent intent = new Intent(Intent.ACTION_VIEW);
                    intent.setDataAndType(Uri.fromFile(file),"application/pdf");
                    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    startActivity(intent);
            }
        });
    } catch (IOException e) {

        e.printStackTrace();
    }

     }
 }

2 个答案:

答案 0 :(得分:0)

将PDF文件保存在资源文件夹中时,Adobe Reader无法识别路径。通常将PDF保存在您的资源文件夹中时,它将在您的APK中不在您的外部存储上,因此Adobe阅读器将无法识别该路径。它应该保存在外部路径中以打开它。

答案 1 :(得分:0)

将文件从assets文件夹复制到app private memory(以便文件受到保护)并使用文件提供程序来访问pdfs文件,以便pdf reader外部应用程序可以显示pdf内容。 https://developer.android.com/training/secure-file-sharing/setup-sharing.html