2016-04-24 3 views
-2

Итак, у меня есть два макета, и я переключаюсь на второй макет, когда нажата кнопка ImageButton. На моей связи 6, как я могу сохранить первый макет, поэтому, когда я нахожусь во втором макете и нажимаю обратно, будет отображаться первый макет?Переход на предыдущий макет?

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     ImageButton ImageButton = (ImageButton) findViewById(R.id.image); 

     ImageButton.setBackgroundColor(1); 

     ImageButton.setOnClickListener(new View.OnClickListener(){ 

      @Override 
      public void onClick(View view) 
      { 

       setContentView(R.layout.layoutsecond); 
      } 
     }); 



    } 
} 
+0

Вы можете использовать 2-фрагменты для вашей задачи. Добавьте второй фрагмент, когда вы нажмете кнопку, и когда вы нажмете назад, предыдущий фрагмент будет автоматически отображаться. –

+1

Как уже упоминалось в предыдущем вопросе, изменение макетов, подобных этому, на самом деле не очень хорошая идея. Используйте другой шаблон навигации - например, «Фрагмент' или несколько «Деятельности», где состояние будет обработано для вас. В противном случае вам нужно позаботиться о повторной инициализации всех ваших 'View' после каждого изменения макета. –

ответ

0

Общая идея, хотя и ужасный совет. Лучшее для использования Fragments and take advantage of the back stack

Начинается с List<Integer>.

магазина вашего первый взгляд на это

list.add(R.layout.view1); 

Установите вид контента в onCreate и увеличивает позицию макета вы находитесь.

int position = 0; // make this a field variable 
setContentView(list.get(position++)); 

Приобретите и добавьте больше идентификаторов макета, когда вы позвоните по телефону setContentView.

list.add(R.layout.view2); 
setContentView(list.get(position++)); 

Внесите onBackPressed, чтобы вернуться. Однако будьте осторожны с исключениями из-за пределов.

setContentView(list.get(--position)); 

Если вы хотите реализовать функцию, чтобы идти вперед, а затем

setContentView(list.get(++position)); 
Смежные вопросы