2 ответа

Лучший ответ

? попробуйте построить такое намерение:

Intent intent = new Intent(getApplicationContext(), LocationEditor.class);
intent.putExtra("Id", id);
startActivity(intent);

В действии получения:

Intent intent = getIntent();
int id = intent.getExtras().getInt("Id");
2
Rafael T 30 Авг 2011 в 14:59

Делая это...

startActivity(new Intent(Intent.ACTION_EDIT,ContentUris.withAppendedId(getIntent().getData(), id)));

... это все равно, что просить ОС: «Эй, я хочу, чтобы вы открыли действие, которое обрабатывает этот тип URI и поддерживает действие Intent.ACTION_EDIT».

Затем выбранное действие должно заглянуть внутрь Uri, извлечь идентификатор и обработать его. Итак, если вы хотите запустить действие напрямую, вам просто нужно явно отправить идентификатор этому действию:

Intent intent = new Intent(getBaseContext(),LocationEditorActivity.class);
intent.putExtra("the_id", id);
startActivity(intent);

Затем внутри действия вместо поиска идентификатора в данных Uri вы получаете его из дополнительных материалов:

long theId = getIntent().getExtras().getLong("the_id", -1);
3
Cristian 30 Авг 2011 в 14:58