У меня есть 3-х классов, давай назовем их 1, 2 и 3.андроид: окончание действия на вкладке
Класс 1 распространяется TabActivity и организует всю вкладку вещь, класс 2 и 3 только два отдельных вкладок, каждая с некоторые строки текста. Я вызываю Class 1 из другого действия, используя startActivityForResult.
Затем я добавил optionsMenu в классе 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? Должен ли я каким-либо образом передавать данные о намерениях?
Вот startactivityforresult, Результат Класс 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 в классе 1, однако, когда я звоню отделку(), он ничего не делает.
Edit:
Я думаю, что я должен поставить optionsmenu в класс 1, так как им отправную 1-го класса в startActivityForResult. Но как выйти из макета вкладки? call finish() в классе 1, похоже, не делает этого.
Можете ли вы показать, как вы называете startActivityForResult? – gulbrandr
Я вызываю класс 1, смотрю выше^ – Jin