2013-04-08 6 views
1

Я новичок в android, и я не могу решить свою простую проблему. У меня есть родительский Tablelayout и внутри него. У меня есть два табличных профайла с идентификаторами tbl1 и tbl2 соответственно в моем xml-файле. В tbl1 layout У меня есть три textviews и три элемента управления edittext, аналогично, у меня есть некоторые представления в макете tbl2. Теперь я хочу, чтобы мой макет tbl1 был виден, когда моя активность начинается, но при нажатии моей кнопки2, которая находится в макете tbl1, мой tablelayout tbl1 становится невидимым, а моя таблица 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

вы хотите сказать, что в первую очередь мне нужно сделать все элементы управления в Layout1 невидимым, а затем сделать их видимыми на нажатие кнопки – rupinder18

+0

@ rupinder18 Да, вы могли бы сделать это в XML тоже, если вам хотел, с 'android: visibility =" gone "' – jcw

+0

, но тогда зачем использовать различные элементы управления в разных макетах ... в основном то, что я хочу, - это щелчок кнопки, определенная группа элементов управления становится видимой и нажимает другую кнопку эта группа элементов управления становится невидимой, и другая группа элементов управления становится видимой ... как в asp.net мы достигаем этого с помощью панелей, например, у меня есть панель 1, и у меня есть некоторые элементы управления, а затем я устанавливаю видимость панели1 true o n щелчок кнопки, преимущество этого, а не установка видимости каждого элемента управления, мы устанавливаем только видимость панели – rupinder18

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