按钮单击如何显示另一个布局(xml)与他们的类?

时间:2013-08-20 14:56:12

标签: android

我有MainActivity扩展Activity,当我打开app并且layout(xml)是main_activity.xml时默认显示。我想要的是按钮点击显示其他类的布局,例如InfoView。我怎么能这样做?

3 个答案:

答案 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;
    }
}