Android 如何使用图像按钮从布局2导航到布局3

Android 如何使用图像按钮从布局2导航到布局3,android,android-layout,imagebutton,Android,Android Layout,Imagebutton,我试图从Layout2(包含8个图像按钮)导航到Layout2(这是一个ImageView),但仍然无法连接到所需的布局。我猜代码中有些东西落后了,但无法获取缺少的条件 我目前的布局是explored_homie.xml Layout2 Java代码: setContentView(R.layout.explored_homie); gallery1 = (ImageButton)findViewById(R.id.gallery1); gallery1.setOnClickListener(

我试图从Layout2(包含8个图像按钮)导航到Layout2(这是一个ImageView),但仍然无法连接到所需的布局。我猜代码中有些东西落后了,但无法获取缺少的条件

我目前的布局是explored_homie.xml

Layout2 Java代码:

setContentView(R.layout.explored_homie);
gallery1 = (ImageButton)findViewById(R.id.gallery1);

gallery1.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {
        switch (v.getId()) {
          case R.id.gallery1:
               setContentView(R.layout.gallery_layout);
               break;
         case R.id.upcoming1:
             setContentView(R.layout.rough);
             break;
其中应调用以下布局: gallery_layout.xml


Layout1只包含一个图像按钮,点击该按钮,我将进入Exploreded_-homie layout2,其中再次包含8个图像按钮,我试图从上面的layout2(Exploreded_-homie)访问按钮库(id:galler1),但仍然无法导航到所需页面,有人能帮我解决这个问题吗?

在一个活动中多次调用setcontentview是一种不好的做法。简单的方法是将两个布局放在同一个xml中,其中一个在可见性消失的位置,并在需要时切换可见性。当然,这是一种丑陋的方式,更优雅的方式是使用某种视图切换器或片段API(为每个布局创建两个片段,并使用FragmentManager更改视图)

在活动中多次调用setcontentview是一种不好的做法。简单的方法是将两个布局放在同一个xml中,其中一个在可见性消失的位置,并在需要时切换可见性。当然,这是一种丑陋的方式,一种更优雅的方式是使用某种视图切换器或片段API(为每个布局创建两个片段,一个片段,并使用FragmentManager更改视图)

您应该使用LayoutInfalter类,而不是这样做。如果您想删除视图,请使用removeView()方法。

您应该使用LayoutInfalter类,而不是这样做。然后,如果您想删除视图,请在代码中使用removeView()方法。

不知何故,您的问题我一个字也听不懂。。。你能试着把它说得更清楚一点吗?不知怎的,你的问题我一个字也听不懂。。。请你试着把它说得更清楚一点好吗?@Ridcully:我有三个xml布局……第一个是初始布局,它将引导我进入第二个xml(explored_homie.xml),然后单击一个特定的按钮(在本例中是gallery1(图像按钮)),它将引导我进入下一个名为gallery布局(第三个布局)的页面,这是失败的…我无法从layout2导航到3,因为上面提到的代码..有一些错误,我无法识别…正如我所说的,您不应该多次使用setContentView。此方法将新视图添加到另一个窗口顶部的整个窗口中,而不首先删除它们。最简单的方法是使用viewflipper,或者您可以实用地将视图添加到FrameLayout中。@Ridcully:请看我有三个xml布局…..第一个是初始布局,它将引导我进入第二个xml(explored_homie.xml)并单击特定按钮(在本例中是gallery1(图像按钮))这将引导我进入下一个名为gallery layout(第三个布局)的页面,该页面失败了…由于上面提到的代码,我无法从layout2导航到3…有一些错误,我无法识别…正如我所说的,您不应该多次使用setContentView。此方法将新视图添加到另一个窗口顶部的整个窗口中,而不首先删除它们。最简单的方法是使用viewflipper,或者可以实用地将视图添加到FrameLayout。