Передача дополнительных данных через Storage Access Framework - PullRequest
0 голосов
/ 05 мая 2019

У меня есть ListView и по щелчку на элементе ListView я вызываю Storage Access Framework (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 Ответ

1 голос
/ 06 мая 2019

Непосредственно перед запуском SAF я хочу передать позицию ListView следующим образом:

Это не работает. Вы не можете принудительно установить дополнительные функции в другое приложение и не можете заставить другое приложение возвращать эти дополнительные элементы.

Но как мне вернуть позицию в методе onActivityResult (), чтобы я знал, по какому элементу щелкнули?

Вы можете сохранить его в поле своей деятельности, фрагмента или модели представления.

Если вы хотите уточнить, вы можете использовать другой код запроса в зависимости от позиции. Поэтому вместо WRITE_REQUEST_CODE используйте WRITE_REQUEST_CODE + position. Вам понадобится смарт в onActivityResult(), чтобы вернуть позицию из кода результата (например, position = resultCode - WRITE_REQUEST_CODE).

...