Android - 如何通过按钮单击更改xml视图/布局?

时间:2012-11-06 07:55:39

标签: android eclipse sdk

我想使用一个按钮来更改xml布局/视图(你究竟是什么称呼显示的页面)。我开发了一个应用程序,其中包含大约5或6页的许多页面,我需要能够使用按钮向前移动到页面并使用不同的按钮返回上一页。

按钮1是前进按钮

按钮2是向后按钮

按钮3是重置按钮(返回第一页)

先谢谢!

3 个答案:

答案 0 :(得分:1)

您可以为每个视图制作活动,或者您可以实现flipviewer

示例布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button android:id="@+id/flip_me"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Flip Me!"
/>
<ViewFlipper android:id="@+id/details"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textColor="#FF00FF00"
android:text="This is the first panel"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textColor="#FFFF0000"
android:text="This is the second panel"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textColor="#FFFFFF00"
android:text="This is the third panel"
/>
</ViewFlipper>
</LinearLayout>

样本活动:

public class FlipperSample extends Activity {

 ViewFlipper flipper;

 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        setContentView(R.layout.main);

        flipper=(ViewFlipper)findViewById(R.id.details);

        Button btn=(Button)findViewById(R.id.flip_me);

        btn.setOnClickListener((View.OnClickListener) new flipMyView());

    }

 class flipMyView implements View.OnClickListener {
  public void onClick(View view) {
   flipper.showNext();
  }
 }
}

答案 1 :(得分:0)

您可以使用ViewFlippers,也可以在按钮点击时将布局设置为您的活动...

答案 2 :(得分:0)

使用setContentView(R.layout.newLayout)更改布局 在按钮onClick上使用不同的布局文件调用setContentView 像这样

Button btn1 = (Button) findViewById(R.id.button1);
    btn1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            setContentView(R.layout.newLayout);
        }
    });

注意:由于你这样做findViewById(R.id.button1)会创建NullPointerException如果该视图没有该元素,那么请小心