2016-05-04 7 views
2

У меня есть 3 мероприятия.
Первый A содержит фрагмент A1, который содержит Spinner.
Когда я нажимаю на Spinner, я перехожу к Activity B, содержащему кнопку. При нажатии на кнопку будет перейти на активность С.как действительно выйти из активности, содержащей фрагмент?

I ovverrode на активность Кассиопеяне OnBackPressed

(
Super OnBackPressed() 
Intent i = new intent (this,ActivityB.class) 
Finish(); 
StartActivity i 
} 

Я перегрузили активность Б OnBackPressed

(
    Super OnBackPressed() 
    Intent i = new intent (this,ActivityA.class) 
    Finish(); 
    StartActivity i 
    } 

I перегрузили активность элементов а OnBackPressed

(
Super OnBackPressed() 
Finish(); 
} 

Моя проблема в том, что каждый раз Я нажимаю кнопку возврата Android, когда я нахожусь в Activity A, приложение не выходит и переходит к моему старому варианту Spinner.
Мне нужно щелкнуть несколько раз, чтобы действительно уйти.

Что нужно сделать, чтобы оставить заявку, просто нажав кнопку возврата Android, когда я нахожусь в Фрагменте A1?

+0

использования, если вы хотите, чтобы закрыть приложение. android.os.Process.killProcess (android.os.Process.myPid()); –

ответ

1

Вы можете использовать getActivity().finish(); из Fragment

+0

да хорошая работа. благодаря – cekamb72

0

Вы можете попробовать завершить текущую деятельность, прежде чем переходить на другую.

Для примера: когда в действии A вы нажимаете на spinner, внутри onclick вы начинаете действие B, а затем вызываете finish(); Это запустит Activity B и завершит операцию A.

Таким образом, вы получите один вид деятельности. Как только вы вернетесь, вы сразу выйдете из приложения.

+0

Я называю Activity B через Fragmetn A1, так как я могу это сделать, так как я не могу завершить фрагмент int? – cekamb72

+0

Вам нужно называть финиш, используя getActivity(). Finish(); getActivity() получит контекст родительской активности для фрагмента. –

0

В действии A вы можете сделать это, чтобы убедиться, что вы очистили свою заднюю часть, поэтому ваше приложение не идет по старому варианту спиннера.

В вашем onCLickListener

Context context = view.getContext(); 
Intent intent = new Intent(context, ActivityB.class); 
startActivity(intent); 
finish(); // call this to finish the current activity 

или вы также можете, сделать это в манифесте

<activity android:name=".ActivityA" android:noHistory="true" ... /> 
+0

OnclickListener находится на фрагменте A1, поэтому я не могу сделать финал(); – cekamb72

+0

Затем вы должны использовать андроид: noHistory = "true" в манифесте Activity xml –