要在ShareIntent中发送多个文本项?

时间:2019-01-16 10:12:25

标签: android android-intent send parcelable share-intent

我的问题与这些问题非常相似:

Is it possible to share multiple text by using share intent?

Passing Multiple text/plain values in share intent

我尝试了建议的解决方案,但没有成功。我正在尝试发送两个项目:共享意图中的“名称”和“到达时间”。通过以下方法将通过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 :(得分:1)

您可以合并两个 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;
}