2013-04-08 48 views
1

我是新来的android和我无法解决我的简单问题。我有一个父级Tablelayout和里面它我有两个tablelayouts分别在我的xml文件ids tbl1和tbl2。在tbl1布局我有三个textviews和三个edittext控件同样我有一些意见在tbl2 layout.Now我希望我的tbl1布局是可见的,当我的活动开始,但点击我的button2这是在tbl1布局我的tablelayout tbl1不可见和我的tablelayout tbl2变得可见。事实上,我知道我可以在面板的帮助下在asp.net中实现这一点,但在Android中,我无法实现同样的功能。请帮助按钮点击事件设置布局visiblity

回答

0

您将要查看setVisibility()方法。在按钮2的点击监听器中,放置以下内容;

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

这会使视图看不见,但它们仍占用空间。如果你不希望他们占用的空间,您应该使用

setVisibility(Veiw.GONE); 

最后,让你的按钮和TextView的和edittexts在第二个表,看起来,你需要做以下;

setVisibility(View.VISIBLE); 
+0

你想说的是,首先,我需要在布局1无形的所有控件,然后让他们在点击按钮可见 – rupinder18 2013-04-08 07:01:17

+0

@ rupinder18是的,你能做到这一点的XML太多,如果你想用'android:visibility ='gone'' – jcw 2013-04-08 07:09:47

+0

'但是最后在不同的布局中放置不同的控件有什么用处......基本上我想要的是点击一个按钮特定的一组控件变得可见并且点击另一个按钮该特定的控件组变得不可见,而其他控件组变得可见......就像在asp.net中,我们通过面板的帮助实现了这一点,例如我有panel1,并在里面有一些控件,然后我设置panel1的可见性为true ñ点击一个按钮,这样做的好处不是设置每个控件的可见性,我们只设置面板的可视性 – rupinder18 2013-04-08 07:24:53

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> 
+0

添加解释给你的答案 – HaveNoDisplayName 2015-09-30 03:30:06