0

Я хотел бы использовать ShareActionProvider, чтобы поделиться содержимым моего ListFragment (который состоит из текстовых записей от ArrayAdapter, поданных с ArrayList<MyObject>).ShareActionProvider с ListFragment

Как это сделать?

Я знаю, что я должен создать новый Intent и использовать setType("text/plain") но setAction() я должен использовать Intent.ACTION_SEND и Intent.ACTION_SEND_MULTIPLE?

При настройке содержимого следует использовать putExtra или putParcelableArrayListExtra?

ли я установить Intent с данными из ListFragment, или из ArrayAdapter, или из ArrayList<MyObject>, который подается в ArrayAdapter, или из данных перед ArrayList были построены?

ответ

0

для setAction() Следует ли использовать Intent.ACTION_SEND и Intent.ACTION_SEND_MULTIPLE?

Это ваш выбор, как автор приложения. Если вы ожидаете поделиться один фрагмент текста (который вы собрали из многих частей самостоятельно), используйте ACTION_SEND. Если вы ожидаете поделиться многими фрагментами текста, используйте ACTION_SEND_MULTIPLE.

Обратите внимание, что я ожидал бы около 100: 1 приложений, поддерживающих ACTION_SEND, по сравнению с ACTION_SEND_MULTIPLE. Итак, если ваша цель состоит в том, чтобы это совместное использование было в целом полезным, вы хотели бы ориентироваться на ACTION_SEND.

Что еще более важно, вам необходимо определить, что хотят сделать пользователей. Предположительно, точка, лежащая в основе вашего развития, - это использование людьми 1+ людей. Если пользователь приложения ожидает отправить одно сообщение или напишите один твит или загрузите один примечание на основе этих данных, вы должны использовать ACTION_SEND. Если вместо этого пользователь будет ожидать отправки сообщений N (или что-то еще), то это было бы что-то попробовать с ACTION_SEND_MULTIPLE.

При настройке содержимого следует использовать putExtra или putParcelableArrayListExtra?

Для ACTION_SEND, было бы putExtra(), проходя в String. Для ACTION_SEND_MULTIPLE это будет putStringArrayListExtra().

ли я установить Intent с данными из ListFragment, или из ArrayAdapter, или из ArrayList, который подается в ArrayAdapter, или из данных перед ArrayList были построены?

Вы используете String или ArrayList<String>, как указано выше.Где вы получаете эти значения от вашей бизнес-логики, что вы как разработчик необходимо решить.

+0

Но мой «ArrayAdapter» заселен «ArrayList », а не ArrayList '. Тем не менее, я не могу использовать 'ArrayList' в' ACTION_SEND'? Должен ли я проходить через ArrayList с циклом for и строить «StringBuilder», который я кормлю 'putExtra'? – Fred

+0

«ListFragment» - это список, содержащий * несколько текстовых записей. Я хочу отправить весь список (состоящий из * нескольких * текстовых записей). Должен ли я использовать 'ACTION_SEND' или' ACTION_SEND_MULTIPLE'? – Fred

+0

@Fred: Вы утверждаете, что пытаетесь отправить текст/plain. * Вам нужно собрать «String» (s) для отправки, потому что * вы * единственные, кто знает, как должны выглядеть эти «String» (s). «Должен ли я использовать ACTION_SEND или ACTION_SEND_MULTIPLE?» - пожалуйста, перечитайте первые три абзаца моего ответа. Ваш тип MIME является «text/plain». Если вы отправляете один «String» или «N», зависит от ваших бизнес-правил. – CommonsWare

Смежные вопросы