У меня есть 3 класса, давайте назовем их 1, 2 и 3.
Class 1 расширяет TabActivity и организует всю вкладку, Class 2 и 3 - это две отдельные вкладки, каждая из которых содержит несколько строк текста. Я вызываю Класс 1 из другого действия, используя startActivityForResult.
Затем я добавил optionMenu в классе 2, и когда пользователь нажимает на optionMenu, выполняется следующий код:
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
Intent i = new Intent();
switch(item.getItemId()) {
case Result.NEXT_ID:
i.putExtra(Result.PAGE_REQUEST, NEXT);
setResult(RESULT_OK, i);
finish();
break;
case Result.PREV_ID:
i.putExtra(Result.PAGE_REQUEST, PREV);
setResult(RESULT_OK, i);
finish();
}
return super.onMenuItemSelected(featureId, item);
}
В моем родительском классе (класс, который вызвал 1 для начала), в его функции onActivityResult я хочу получить данные из дополнений. Однако цель всегда нулевая, и я не могу понять, почему.
Когда я вызываю finish () в классе 2, вызывает ли он какую-то другую функцию в классе 1? Нужно ли как-то передавать данные о намерениях?
Вот стартовая активность для результата, Результат - Класс 1
private void getResult(String result) {
Intent i = new Intent(this, Result.class);
i.putExtra(RESULT, result);
i.putExtra(PAGE, curr_start_page);
startActivityForResult(i, 0);
}
Я также пытался поместить методы optionmenu в Class 1, однако, когда я вызываю finish (), он ничего не делает.
Edit:
Я думаю, что я должен поместить optionsmenu в Class 1, так как я начинаю class 1 в startActivityForResult. Но как выйти из макета вкладки? вызов метода finish () в классе 1, похоже, не помогает.