设置按钮单击事件的布局可见性

时间:2013-04-08 05:46:27

标签: android visibility tablelayout buttonclick

我是android的新手,我无法解决我的简单问题。我有一个父Tablelayout,里面我有两个tablelayout,分别在我的xml文件中有ids tbl1和tbl2。在tbl1布局中我有三个textviews和三个edittext控件类似我在tbl2布局中有一些视图。现在我希望我的tbl1布局在我的活动开始时可见但是点击我的button2在tbl1布局中我的tablelayout tbl1变得不可见并且我的tablelayout tbl2变得可见。实际上我知道我可以在面板的帮助下在asp.net中实现这一点,但在android中我无法实现相同的功能。请帮助

2 个答案:

答案 0 :(得分:0)

您将要查看setVisibility()方法。在按钮2的on click侦听器中,输入以下内容;

Button.setVisibility(View.INVISIBLE)
TextView.setVisibility(View.INVISIBLE)
etc...

这会使视图不可见,但它们仍会占用空间。如果你不想让它们占用空间,你应该使用

setVisibility(Veiw.GONE);

最后,要显示第二个表格中的按钮和textview以及edittexts,您需要执行以下操作;

setVisibility(View.VISIBLE);

答案 1 :(得分:0)

Java Code:
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.visibility_1);

        // Find the view whose visibility will change
        mVictim = findViewById(R.id.victim);

        // Find our buttons
        Button visibleButton = (Button) findViewById(R.id.vis);
        Button invisibleButton = (Button) findViewById(R.id.invis);
        Button goneButton = (Button) findViewById(R.id.gone);

        // Wire each button to a click listener
        visibleButton.setOnClickListener(mVisibleListener);
        invisibleButton.setOnClickListener(mInvisibleListener);
        goneButton.setOnClickListener(mGoneListener);
    }

    OnClickListener mVisibleListener = new OnClickListener() {
        public void onClick(View v) {
            mVictim.setVisibility(View.VISIBLE);
        }
    };

    OnClickListener mInvisibleListener = new OnClickListener() {
        public void onClick(View v) {
            mVictim.setVisibility(View.INVISIBLE);
        }
    };

    OnClickListener mGoneListener = new OnClickListener() {
        public void onClick(View v) {
            mVictim.setVisibility(View.GONE);
        }
    };
}

XML Code:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
      android:orientation="vertical"
      android:background="@drawable/box"
      android:layout_width="match_parent"
      android:layout_height="wrap_content">

      <TextView
          android:background="@drawable/red"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:text="@string/visibility_1_view_1"/>

      <TextView android:id="@+id/victim"
          android:background="@drawable/green"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:text="@string/visibility_1_view_2"/>

      <TextView
          android:background="@drawable/blue"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:text="@string/visibility_1_view_3"/>

    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <Button android:id="@+id/vis"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/visibility_1_vis"/>

        <Button android:id="@+id/invis"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/visibility_1_invis"/>

        <Button android:id="@+id/gone"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/visibility_1_gone"/>

    </LinearLayout>
</LinearLayout>