gpt4 book ai didi

java - 如何使用实用程序类启动intent android

转载 作者:行者123 更新时间:2023-12-01 18:45:09 26 4
gpt4 key购买 nike

我正在更新公司应用程序的代码,大约有 20 个 Activity 类,它们都下载 PDF,然后使用以下代码显示它:

public void showPdf()
{
File file = new File(Environment.getExternalStorageDirectory()+"/pdf/Read.pdf");
PackageManager packageManager = getPackageManager();
Intent testIntent = new Intent(Intent.ACTION_VIEW);
testIntent.setType("application/pdf");
List list = packageManager.queryIntentActivities(testIntent, PackageManager.MATCH_DEFAULT_ONLY);
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
Uri uri = Uri.fromFile(file);
intent.setDataAndType(uri, "application/pdf");
startActivity(intent);
}

代码正在工作,但是它已被复制到所有 20 个类中(对我来说似乎非常糟糕),我想将其放入每个 Activity 类导入的单个类中,但是当我尝试这样做时,事情发生了像 getPackageManager()startActivity(intent) 不再起作用。

我如何构建我的类(class)来实现这一目标?或者我是否以错误的方式处理这个问题。

最佳答案

How can I structure my class to make this happen?

第 1 步:使其成为实用程序类上的静态方法。

第 #2 步:将 Context ctxt 添加为方法的参数。

第 3 步:对于 getPackageManager()startActivity() 等在 Context 上实现的方法,请在传递的参数上调用它们-in ctxt 参数。

第 4 步:用尺子敲一下手腕,使用字符串连接来创建文件路径,并以正确的方式进行。

第 5 步:删除您不使用的 queryIntentActivities() 代码。

public static void showPdf(Context ctxt)
{
File file = new File(Environment.getExternalStorageDirectory(), "/pdf/Read.pdf");
Intent intent = new Intent(Intent.ACTION_VIEW);

intent.setDataAndType(Uri.fromFile(file), "application/pdf");
startActivity(intent);
}

第 6 步:让当前正在调用 showPdf() 的位置调用 YourUtilityClass.showPdf(this)

关于java - 如何使用实用程序类启动intent android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18108730/

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