我有MainActivity扩展Activity,当我打开app并且layout(xml)是main_activity.xml时默认显示。我想要的是按钮点击显示其他类的布局,例如InfoView。我怎么能这样做?
答案 0 :(得分:1)
您必须使用意图在“活动”之间切换。与布局相关的每个类称为活动(一般说话)。
在这里阅读更多内容。这很容易使用!
http://www.vogella.com/articles/AndroidIntent/article.html
如果你想保持相同的活动,你可以使用片段(对于初学者来说有点困难,或者只是使用this.setContentView(R.layout.anyotherlayout)
来改变布局。
答案 1 :(得分:1)
您可以在main_activity.xml中添加FrameLayout作为新视图的容器,例如id =“@ id + / main_activity_container”
然后在你的方法
public void onClick(View view){
ViewGroup container = (ViewGroup)findVideById(R.id.main_activity_container);
container.removeAllViews();
LayoutInflater inflater = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View yourNewView = inflater.inflate(R.layout.newView, container,false);
container.addView(container);
}
片段实现:
public void onClick(View view){
Fragment fragmentWithYourNewView = initFragment();
FragmentManager frMan = getSupportFragmentManager();
FragmentTransaction frTr = frMan.beginTransaction();
frTr.add(R.id.main_activity_container,fragmentWithYourNewView);
frTr.commit();
}
在这种情况下,如果用户按下后退按钮,则返回previus状态。
答案 2 :(得分:0)
试试这段代码:
boolean isSecondLayout;
public void onClick(View view){
if (!isSecondLayout) {
MainActivity.setContentView(R.layout.InfoView);
isSecondLayout = true;
} else {
MainActivity.setContentView(R.layout.main);
isSecondLayout = false;
}
}