Подтвердить что ты не робот

Intent.setData vs Intent.putExtra

Я пытаюсь следовать этому руководству:

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

Я понимаю, что putExtra делает

но я не понимаю, что означает setData()?

Android Docs не помогло:

Set the data this intent is operating on.

что это означает для константы

intent.setData(CalendarContract.Events.CONTENT_URI);?

Кажется, что нет никакого влияния, когда я прокомментирую эту строку.

4b9b3361

Ответ 1

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);

Для получения дополнительной информации я предлагаю прочитать некоторые Intents и setData(), setType() и setDataAndType()

Ответ 2

Я думаю, что .putExtra должен передать строку или что-то еще. как Aramex: P

а .setData - установить тип данных о намерениях.

см. в намерении Intent.ACTION_INSERT. Поэтому он ждет чего-то, что нужно вставить. Вот почему вы устанавливаете данные. .setData(CalendarContract.Events.CONTENT_URI); Вы ввели события календаря.