2016-05-14 2 views
-1

Я хочу переключиться между макетами, используя кнопку физического возврата. Я нашел это:Switching layout whit onBackPressed()

@Override 
public void onBackPressed() { 
RelativeLayout layout2 = (RelativeLayout)findViewById(R.id.layout2);// check if layout2 is open 
if(layout2.getVisibility() == View.VISIBLE){ 
    setContentView(R.layout.main); 
    return; 
}else{ 
    super.onBackPressed(); 
    } 

} 

Правильность проверки?

+0

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

+0

Я не хороший программист на Java, я нашел этот код Java на Stackoverflow и только мне хочу знать, может ли этот код помочь мне –

+0

Этот код переключит ваш макет только тогда, когда layout2 будет виден, в противном случае он вернет вас (поведение по умолчанию для физического возврата) – abhishesh

ответ

0

Сделать RelativeLayout decalre глобально, так что вы можете получить доступ в OnBack() метод

RelativeLayout layout2 

эту линию вы должны поставить в методе OnCreate()

layout2 = (RelativeLayout)findViewById(R.id.layout2);// 

и, наконец, проверить visibility из layout

@Override 
public void onBackPressed() { 
if(layout2.getVisibility() == View.VISIBLE){ 
    setContentView(R.layout.main); 
    return; 
}else{ 
    super.onBackPressed(); 
    } 

} 

нравится кодирование ............

+0

И если у меня есть более 2 макетов? –

+0

что вы имеете в виду 2 макета ... Вы хотите изменить форму макета один на другой .... – sushildlh

+0

Я имею в виду, как в простом приложении. Если у меня 3 страницы, когда я нахожусь на третьем, если я нажму кнопку «Назад», приложение изменится с layout3 на layout2. То же самое с макетом1. –