通过存储访问框架传递额外的数据

时间:2019-05-05 20:57:55

标签: android android-intent storage-access-framework

我有一个ListView,通过单击ListView的一个项目,我将其称为存储访问框架(SAF)。

就在开始SAF之前,我想像这样传递ListView的位置:

intent.putExtra("Position", position);
startActivityForResult(intent, WRITE_REQUEST_CODE);

但是如何通过onActivityResult()方法重新获得位置,以便知道单击了哪个项目?

我尝试了以下几行,但没有成功:

Bundle extras = resultData.getExtras();
Integer i = getIntent().getIntExtra("routeDataPosition", 42);
Integer i2 = resultData.getIntExtra("routeDataPosition", 42);

1 个答案:

答案 0 :(得分:1)

  

就在启动SAF之前,我想像这样传递ListView的位置:

那是行不通的。您不能将额外功能强加到另一个应用程序中,也不能强制另一个应用程序退还这些额外功能。

  

但是如何在onActivityResult()方法中重新获得位置,以便知道单击了哪个项目?

您可以将其存储在活动,片段或视图模型的字段中。

如果要详细说明,可以根据职位使用其他请求代码。因此,使用WRITE_REQUEST_CODE代替WRITE_REQUEST_CODE + position。您需要在onActivityResult()中拥有聪明才智,才能从结果代码(例如position = resultCode - WRITE_REQUEST_CODE)中重新获得排名。