gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 14:15:34 25 4
gpt4 key购买 nike

我正在开发一个教育应用程序,其中包含 PDF 文件格式的多份试卷PDF 文件放置在 Assets 子文件夹中并以 ListView 显示。到这里我的代码工作正常。但是当我单击列表项时,不显示 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();
}

}
}

最佳答案

将文件从 Assets 文件夹复制到应用程序私有(private)内存(以便文件受到保护)并使用文件提供程序授予对 pdf 文件的访问权限,以便 pdf 阅读器外部应用程序可以显示 pdf 内容。 https://developer.android.com/training/secure-file-sharing/setup-sharing.html

关于java - 如何从assets子文件夹中读取PDF文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27792722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com