java type Intent.setData与Intent.putExtra




intent type (3)

我认为.putExtra是传输字符串或其他东西。 像Aramex:P

.setData用于设置intent的数据类型。

在意图中看到它是Intent.ACTION_INSERT 。 所以它正在等待插入的东西。 这就是你设置数据的原因。 .setData(CalendarContract.Events.CONTENT_URI); 您插入了日历事件。

我正在尝试按照本教程:

http://www.vogella.com/articles/AndroidCalendar/article.html

我理解putExtra的作用

但我不明白setData()的含义是什么?

Android文档,没什么用处:

Set the data this intent is operating on.

这对常数意味着什么

intent.setData(CalendarContract.Events.CONTENT_URI);

当我注释掉这一行时似乎没有任何影响。


setData()用于Android系统,以查找与隐式intent中的data属性匹配的应用程序组件。

putExtra()主要用于通过Android系统将一些信息传递给选定的应用程序组件。


setData()用于指向数据对象的位置 (例如文件),而putExtra()添加简单数据类型 (例如SMS文本字符串)。

以下是两个澄清的例子:

setData()用于设置要共享的文件的位置。

File fileToShare = new File("/sdcard/somefile.dat");
Intent i = new Intent();
i.setAction(Intent.ACTION_SEND);
i.setData(Uri.fromFile(fileToShare));
startActivity(i);

putExtra()用于设置要共享的文本内容。

Intent i = new Intent();
i.setAction(Intent.ACTION_SEND);
string textBodyString = "some text";
i.putExtra(Intent.EXTRA_TEXT, textBodyString);
i.setType(HTTP.PLAIN_TEXT_TYPE);

有关更多信息,我建议阅读有关IntentssetData()setType()setDataAndType()





android-intent