2016-08-11 7 views
0

У нас есть Android-приложение, которое содержит две операции MainActivity и PageTwo. В MainActivity у нас есть виджет EditText, чтобы принимать только ввод номера и кнопку, которая переходит к следующему действию с помощью намерения. На втором действии PageTwo у нас есть кнопка, которая возвращает пользователя в MainActivity с намерением. Когда мы вводим значение в поле EditText и выполняем переход из MainActivity в режим PageTwo и возвращаем значение, которое, кажется, стирается, если вы не используете кнопку возврата устройства (эмулятора). Я пытаюсь сохранить активность государства этой переменной один EditTextВедение состояния деятельности с двумя видами деятельности

фрагменты кода

EditText ETage; 
int vAGE; 
static final String V_AGE = "vAGE"; //KeyValue Pair 

@Override 
public void onSaveInstanceState(Bundle outState){ 
    outState.putInt(V_AGE,vAGE); 
    super.onSaveInstanceState(outState); 
} 

//@Override 
public void onRestoreInstanceState(Bundle savedInstanceState){ 
    super.onRestoreInstanceState(savedInstanceState); 
    vAGE = savedInstanceState.getInt(V_AGE); 
    ETage.setText(String.valueOf(vAGE)); 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    //if(savedInstanceState != null){ 
     //vAGE = savedInstanceState.getChar(V_AGE); 
    //} 
    setContentView(R.layout.activity_main); 

    ETage = (EditText)findViewById(R.id.editTextAge); 
+0

Из того, что я понимаю, вы начали новый экземпляр первой активности на верхней части второго. Чтобы «вернуться» к действительной первой активности, вы вызываете 'finish()' со второго. –

+0

@ cricket_007 финиш() сделал трюк, спасибо, что у меня есть только 10 очков репутации, поэтому не уверен, что могу дать вам кредит. Какие ошибки меня интересует, это тот же вопрос, который задают с целью использования намерения. –

+0

Покажите свой код паспорта, чтобы вернуться в MainActivity – Vickyexpert

ответ

0

В PageTwo второй активности не возвращаются в MainActivity с намерением. Просто, сделайте следующее нажатие кнопки:

super.onBackPressed(); // this instead of intent to start MainActivity 
+0

попытался ввести эту строку кода в onClick (View v) без каких-либо результатов. Ошибка не может решить метод. –

+0

@James_Duh Это маловероятно, какой класс активности вы используете ...? Кстати, вы можете решить проблему с 'finish()' тоже. – Shaishav

+0

Intent intent = new Intent (PageTwo.this, MainActivity.class) –

0

Из того, что я понял из вашего вопроса вы можете сделать, как это вторая страница:

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 

Intent intent = new Intent(SecondActivity.this,MainActivity.class); 
     startActivity(intent); 

} 
+0

Это, скорее всего, ничего не изменит. Поскольку на заднем прессе он уже получает правильные результаты – Shaishav

1

, если вы хотите, чтобы вернуться к предыдущей деятельности, почему вы призвание? просто написать onBackPressed(); внутри onClick

Пример

btn.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     onBackPressed(); 
    } 
}); 

или, если вы действительно хотите, чтобы использовать намерение, вы всегда можете использовать finish().

Пример

btn.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 

     Intent i = new Intent(PageTwo.this, MainActivity.class);    
     startActivity(i); 
     finish(); 
    } 
}); 
+0

, так что я держу свои два пакета или может быть удален –

+0

, если вы используете первый метод. удалите их. и если вы используете второй, вам нужно их сохранить. –

+0

puohit попробовал ваш код с намерением и закончил его сбой, если мы просто входим в закончить() без намерения, все хорошо –