android - 从一种布局 View 更改为另一种布局 View 并返回?

标签 android android-layout android-button

想要制作一个以 main 布局开始的 Android 应用程序,当您按下此布局中的按钮(称为 stateButton)时,布局会更改为 < em>main2 布局包含另一个按钮(称为 boton2),当你按下这个按钮时,你会回到第一个主按钮。

我想在同一个 Activity 中执行此操作,而不创建或启动另一个 Activity 。

这里我给你展示部分代码:

public class NuevoshActivity extends Activity
implements SensorEventListener, OnClickListener {
    private Button stateButton;
    private Button boton2;

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState);       
        setContentView(R.layout.main); 
        this.stateButton = (Button) this.findViewById(R.id.boton);
        this.boton2 = (Button) this.findViewById(R.id.boton2);      
        stateButton.setOnClickListener(this);
        boton2.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        if(v==stateButton) {
            setContentView(R.layout.main2);             
        }
        else if(v==boton2) {
            setContentView(R.layout.main);
        }
    }
}

主界面只有一些图像、 TextView 和按钮。

但是我遇到了一些麻烦。难道不能就这么简单吗?或者我错过了什么或出了什么问题?

最佳答案

当您使用 findViewById 时,您实际上是在尝试在 setContentView 指定的布局中查找 View 。因此,当您尝试检查按钮时,一次又一次地使用 setContentView 可能会带来问题。

我不使用 setContentView,而是将屏幕的 2 种布局添加为一次只显示一个子项的 View 翻转器的子布局。您可以指定要显示的子项的索引。使用 View 翻转器的好处是,如果在 View 之间切换时需要动画,您可以轻松地为 View 指定“进入”和“离开”动画。这是一种比一次又一次调用 setContentView 更简洁的方法。

关于android - 从一种布局 View 更改为另一种布局 View 并返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7477991/

相关文章:

android - Caused by : java. lang.IllegalStateException: Fragment already added

java - 如何使用 androidx 从另一个 fragment 调用 fragment 方法

android - 如何在表格布局中添加表格行?

android - 在没有用户交互屏幕的情况下授予权限

java - 不幸的是应用程序已停止工作

java - 按钮单击更改 TextView

java - 解码旋转的位图

java - LayoutWeights 无法正确缩放元素

android - 如何在android中使用渐变阴影按钮制作渐变恒定发光?

android - 使用随机结果设置按钮文本