Отправить несколько текстовых элементов в ShareIntent? - PullRequest
0 голосов
/ 16 января 2019

Мой вопрос очень похож на эти:

Можно ли поделиться несколькими текстами с помощью намерения поделиться?

Передача нескольких текстовых / простых значений в общем намерении

Я попробовал предложенные решения, но они не сработали. Я пытаюсь отправить две вещи: «имя» и «время прибытия» в общем намерении. Данные, из которых два текста (строки) загружаются в действие через AsyncTask и RecyclerView, представлены ниже в методе.

// инициализация

  Schedule stationArrival;
            private String stationShareStationName;
            private String stationShareArrivalTime;


 @Override
    public void returnScheduleData(ArrayList<Schedule> simpleJsonScheduleData)
    {
        if (simpleJsonScheduleData.size() > 0) {
            scheduleAdapter = new ScheduleAdapter(simpleJsonScheduleData, StationScheduleActivity.this);
            scheduleArrayList = simpleJsonScheduleData;
            mScheduleRecyclerView.setAdapter(scheduleAdapter);
            scheduleAdapter.setScheduleList(scheduleArrayList);

            stationArrival = scheduleArrayList.get(0);

            stationShareStationName = stationArrival.getStationScheduleName();
            stationShareArrivalTime = stationArrival.getExpectedArrival();     
        }
       else
        {
            Toast.makeText(StationScheduleActivity.this, "Data currently unavailable", Toast.LENGTH_SHORT).show();
        }
        if (mShareActionProvider != null)
        {
            mShareActionProvider.setShareIntent(createShareIntent());
        }
    }

Код ShareIntent. В настоящее время это неправильно, поскольку на экране общего доступа отображается только один из элементов. Я попытался поместить два элемента в ArrayList, но он не работает, так как у меня есть отдельный метод для ShareIntent. Есть ли способ сделать это без реструктуризации текущего кода? Заранее спасибо.

public Intent createShareIntent()
    {
        Intent shareIntent = new Intent(Intent.ACTION_SEND);
        shareIntent.setType("text/plain");
        shareIntent.putExtra(Intent.EXTRA_TEXT,stationShareStationName);
        shareIntent.putExtra(Intent.EXTRA_TEXT,stationShareArrivalTime);
        return shareIntent;
    }

1 Ответ

0 голосов
/ 16 января 2019

Вы можете объединить две stationShareStationName и stationShareArrivalTime и создать одну строку. Вы также можете использовать символы новой строки между этими переменными ("\ n"), как показано ниже:

public Intent createShareIntent()
{
    String stationShareStationName ="xxx";
    String stationShareArrivalTime = "xxx";
    String data =stationShareStationName + "\n" + stationShareArrivalTime

    Intent shareIntent = new Intent(Intent.ACTION_SEND);
    shareIntent.setType("text/plain");
    shareIntent.putExtra(Intent.EXTRA_TEXT,data);
    return shareIntent;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...