Это сделано по замыслу; Системные действия не будут возвращать дополнительные функции, с которыми они вызваны, поэтому вам придется управлять данными в другом месте.
К счастью, параметр resultCode
полностью контролируется вами, что означает, что вы можете использовать его для индексации ваших данных.
private final int PICK_CONTACT = 0;
private Bundle[] myDataTransfer = { null };
...
Bundle myData = new Bundle();
myData.putString(EXTRA_ONLINE_ID, (String) v.getTag());
myDataTransfer[PICK_CONTACT] = myData;
// create intent and all
startActivityForResult(intent, PICK_CONTACT);
...
public void onActivityResult(int reqCode, int resultCode, Intent data) {
if (resultCode == PICK_CONTACT) {
Bundle myData = myDataTransfer[resultCode];
String onlineid = myData.getString(EXTRA_ONLINE_ID);
}
}
Я не программист на Java, должен быть лучший способ реализовать карту пакетов, но это работает:)