Android Studio Back Button -- java поле с участием android поле с участием android-studio пол Связанный проблема

Android Studio Back Button Problems


0
vote

проблема

русский

на данный момент. Я создал простое приложение для викторины на Android Studio. Все работает нормально, в том числе, когда я иду от первой фактической жизни. Являю к следующей активности, которая называется Secondactivity.java, и закрыть первую активность с отделкой (), когда кнопка нажата, как показано в следующем коде:

.
 <код>  public void onClick () {         button_next = (Button)findViewById(R.id.nextbtn);               button_next.setOnClickListener(new View.OnClickListener() {                 @Override                 public void onClick(View v) {                     startActivity(new Intent(FirstActivity.this, SecondActivity.class));                     finish();                   }             });   

Код работает отлично, но когда я пытаюсь перейти от второй активности в первую деятельность (закрытие второго активности и возвращается к первой активности), ни отделка (), ни в обратном плане () не работает, он просто закрывает Приложение полностью, какой код мне нужно как можно скорее нажмете кнопку, закройте вторую факцию .Class и перейдите к FirstActivity.Class?

Английский оригинал

For so far. I have created a simple quiz application on Android Studio. Everything works fine, including when I go from the FirstActivity.java to the Next Activity, which is named SecondActivity.java, and close the first activity with finish(),when the button is pressed, as shown in the following code:

 public void onClick () {         button_next = (Button)findViewById(R.id.nextbtn);               button_next.setOnClickListener(new View.OnClickListener() {                 @Override                 public void onClick(View v) {                     startActivity(new Intent(FirstActivity.this, SecondActivity.class));                     finish();                   }             }); 

The code works great But when I try to go from the Second Activity to the First Activity (Closing the Second Activity and going back to the first Activity), neither finish() nor onBackPressed() is working, it just closes the application completely, what code do I need to as soon as I press the button, close the SecondActivity.class and go to the FirstActivity.class?

</div
        
     
     

Список ответов

0
 
vote

Если вы хотите вернуться к предыдущему действию, не помещайте отделка после того, как вы измените свою деятельность.

 <код> public void onClick() {     button_next = (Button) findViewById(R.id.nextbtn);     button_next.setOnClickListener(new View.OnClickListener() {         @Override         public void onClick(View v) {             startActivity(new Intent(FirstActivity.this, SecondActivity.class));         }     }); }   
 

If you want to go back to previous activity, dont put finish after you change your activity.

public void onClick() {     button_next = (Button) findViewById(R.id.nextbtn);     button_next.setOnClickListener(new View.OnClickListener() {         @Override         public void onClick(View v) {             startActivity(new Intent(FirstActivity.this, SecondActivity.class));         }     }); } 
</div
 
 
       
       
0
 
vote

Если у вас есть так много мероприятий, есть еще один способ жизненного цикла справки:

 <код> public class MyActivityManager {     private static MyActivityManager instance;     private Stack<Activity> activityStack;//activity's stack     private MyActivityManager() {     }     //singleton     public static MyActivityManager getInstance() {         if (instance == null) {             instance = new MyActivityManager();         }         return instance;     }     //push an activity to stack     public void pushOneActivity(Activity actvity) {         if (activityStack == null) {             activityStack = new Stack<Activity>();         }         activityStack.add(actvity);     }     //get last activity,fifo     public Activity getLastActivity() {         return activityStack.lastElement();     }     //remove an activity     public void popOneActivity(Activity activity) {         if (activityStack != null && activityStack.size() > 0) {             if (activity != null) {                 activity.finish();                 activityStack.remove(activity);                 activity = null;             }         }     }     //finish all activity     public void finishAllActivity() {         if (activityStack != null) {             while (activityStack.size() > 0) {                 Activity activity = getLastActivity();                 if (activity == null) break;                 popOneActivity(activity);             }         }     } }   

При первой активности вы добавите

<Код> MyActivityManager.getInstance().pushOneActivity(FirstActivity.this);

При втором факте, вы хотите пройти преданность или другую деятельность:

 <код> startActivity(new Intent(FirstActivity.this, SecondActivity.class)); MyActivityManager.getInstance().finishAllActivity(); finish();   
 

If you have so many activities ,there is another way handle activity life cycle:

public class MyActivityManager {     private static MyActivityManager instance;     private Stack<Activity> activityStack;//activity's stack     private MyActivityManager() {     }     //singleton     public static MyActivityManager getInstance() {         if (instance == null) {             instance = new MyActivityManager();         }         return instance;     }     //push an activity to stack     public void pushOneActivity(Activity actvity) {         if (activityStack == null) {             activityStack = new Stack<Activity>();         }         activityStack.add(actvity);     }     //get last activity,fifo     public Activity getLastActivity() {         return activityStack.lastElement();     }     //remove an activity     public void popOneActivity(Activity activity) {         if (activityStack != null && activityStack.size() > 0) {             if (activity != null) {                 activity.finish();                 activityStack.remove(activity);                 activity = null;             }         }     }     //finish all activity     public void finishAllActivity() {         if (activityStack != null) {             while (activityStack.size() > 0) {                 Activity activity = getLastActivity();                 if (activity == null) break;                 popOneActivity(activity);             }         }     } } 

at the FirstActivity,you shall add

MyActivityManager.getInstance().pushOneActivity(FirstActivity.this);

at the SecondActivity, you want to go FirstActivity or other activity:

startActivity(new Intent(FirstActivity.this, SecondActivity.class)); MyActivityManager.getInstance().finishAllActivity(); finish(); 
</div
 
 

Связанный проблема

1  Как вызвать мой метод reзов API, интегрированный с Redis на Windows?  ( How to invoke my restful api method integrated with redis on windows ) 
Я пытаюсь запустить образец весеннего загрузочного приложения с Redis. Я использую завод соединения JEDIS и установив его на заводе подключения шаблона Redis....

0  Случайные 7-значные номера на andich android  ( Random 7 digit numbers on click android ) 
Я хотел бы, чтобы вы помогли мне в этом коде. Я могу генерировать случайные числа, но не в точном количестве. Вопрос: Как я могу генерировать 7 случайных ци...

40  Можете ли вы сказать во время выполнения, если вы запускаете Java из банки?  ( Can you tell on runtime if youre running java from within a jar ) 
У меня есть приложение, которое некоторые из моих пользователей работают от Eclipse, и другие запускают его, используя файл JAR. Я хочу, чтобы некоторые дей...

-1  Нужно упростить логическое выражение (байт, короткое, целое число) Java  ( Need to simplify logical expression byte short integer java ) 
Мне нужно упростить выражение Первое выражение <код> (byte)( (short)((short)( (byte)((theInt >> 8) & 0xFF) & 0xFF) + 128) & 0xFF); второе выражение ...

3  Eclipse Java Formatter - новая линия до закрытия скобок  ( Eclipse java formatter newline before closing parentheses ) 
Можно ли настроить Dippleter Eclipse Java для вставки новой строки до закрытия скобок выражений, деклараций метода и вызовы методов? Обратите внимание на же...

0  Должен ли я использовать Mac для разработки Javafx для iOS  ( Do i have to use a mac to develop javafx for ios ) 
Документация http://docs.gluonhq.com/charm/4.0.1 / # _ iOS говорит, что мне нужно «Mac с MacOS X 10.9 или превосходящим» для разработки для iOS. Но я не пон...

17  Перегрузка Java VS переопределения  ( Java overloading vs overriding ) 
Привет, я просто хочу убедиться, что у меня есть эти понятия правильно. Перегрузка в Java означает, что у вас может быть конструктор или метод с различным кол...

22  Множественные методы постконструкции?  ( Multiple postconstruct methods ) 
Он говорит в Документация Java для Postconstruct что Только один метод может быть аннотирован с этой аннотацией Но я просто пытался аннотировать три м...

3  Как мне изменить ответ на запрос на параметры http в приложении Spring MVC 2.5?  ( How do i change the response for a http options request in a spring mvc 2 5 appl ) 
Это звучит как тривиальный вопрос, но каким-то образом я не могу понять это. У меня есть приложение Spring MVC. Я не поддерживаю никаких HTTP-методов, кроме...

1  Установка поля _ID с использованием SQLite & ContentProvider в Android  ( Setting the id field using sqlite contentprovider in android ) 
Я пытаюсь настроить ContentProvider в приложении Android, чтобы держать информацию о домах. Я хотел бы иметь возможность установить поле _id, чтобы быть таким...

5  Конвенции о ведении регистрации [Закрыто]  ( Logging conventions ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> <Путь d = "M15 6.38A6.48 6.48 0 007.78. 04H-.02A6.49 6.49 0 002.05 ...

1  Apache Vamel: Как проверить, например, набор набора <customObject>  ( Apache camel how to test for instance of setcustomobject ) 
Кто-нибудь знает, как тестировать для различных типов коллекции в маршруте? <код> // This processor returns a Collection of 2 Sets // 1. Set<GoodMessage> //...

21  Тип несоответствия для генеральных классов  ( Type mismatch for class generics ) 
У меня есть следующий код, который не скомпировался, и хотя есть способ сделать его компиляцией, я хочу понять, почему он не компилирует. Может ли кто-нибудь ...

0  карта JSON на провал строки в Java  ( Json map to string failure in java ) 
В Java я пытаюсь преобразовать карту в JSon строку. используя код ниже <код> private void sendResponse(Map<String, String> responseMap) throws IOException {...

1  Содержание XML преобразования передается с POST на объект Java, атрибут внутри элемента: REST  ( Rest convert xml content passed with post to a java object attribute inside th ) 
<Р> Я работаю с REST сервисов и я хочу передать XML-текст запроса POST. Мой сервер реализован в JAVA. Давайте предположим, что я посылаю этот XML: <код> <ran...

Связанный проблема

1  Как вызвать мой метод reзов API, интегрированный с Redis на Windows? 
0  Случайные 7-значные номера на andich android 
40  Можете ли вы сказать во время выполнения, если вы запускаете Java из банки? 
-1  Нужно упростить логическое выражение (байт, короткое, целое число) Java 
3  Eclipse Java Formatter - новая линия до закрытия скобок 
0  Должен ли я использовать Mac для разработки Javafx для iOS 
17  Перегрузка Java VS переопределения 
22  Множественные методы постконструкции? 
3  Как мне изменить ответ на запрос на параметры http в приложении Spring MVC 2.5? 
1  Установка поля _ID с использованием SQLite & ContentProvider в Android 
5  Конвенции о ведении регистрации [Закрыто] 
1  Apache Vamel: Как проверить, например, набор набора <customObject> 
21  Тип несоответствия для генеральных классов 
0  карта JSON на провал строки в Java 
1  Содержание XML преобразования передается с POST на объект Java, атрибут внутри элемента: REST