2013-03-03 82 views
0

我已經創建了兩個表格,一個在左側,一個在屏幕中央。當您啓動應用程序時,左側的表格被設置爲可見,並且中間的表格被設置爲不可見。隱藏和顯示android中的表格

現在我想單擊左側表格(Buton_left)中的一個按鈕,中間的整個表格將變爲可見。

我有這個方法到目前爲止,但它似乎並沒有工作。任何幫助或建議,將不勝感激。讓我知道你是否需要更多信息。

package com.example.musicapp; 
    import android.os.Bundle; 

    public class Tbl_Show_Hide extends Activity implements OnClickListener { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    TableLayout table_left = (TableLayout)findViewById(R.id.table_left); 
    TableLayout table_center = (TableLayout)findViewById(R.id.table_center); 
    Button Buton_left = (Button)findViewById(R.id.Buton_left); 

    table_left.setOnClickListener(this); 
    table_center.setOnClickListener(this); 
    Buton_left.setOnClickListener(this); 

    } 

     @Override 
     public void onClick(View v) { 

    boolean visible = true; 
    int targetId = v.getId(); 
    if(targetId == R.id.Buton_left) 
    { 
     if(visible) 
        { 
     if(table_center.getVisibility() == View.INVISIBLE) 
     { 
      table_center.setVisibility(View.VISIBLE); 
     } 
     } 

     } 

}

回答

2

View#getVisibility可以返回VISIBLE一個,INVISIBLE,或者GONE。然後在onCreate方法中創建table_center,這是一個局部變量,onClick不可見。

所以將其更改爲:

public class Tbl_Show_Hide extends Activity implements OnClickListener { 
    final TableLayout table_left = (TableLayout)findViewById(R.id.table_left); 
    final TableLayout table_center = (TableLayout)findViewById(R.id.table_center); 
    final Button Buton_left = (Button)findViewById(R.id.Buton_left); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    table_left.setOnClickListener(this); 
    table_center.setOnClickListener(this); 
    Buton_left.setOnClickListener(this); 

    } 

     @Override 
     public void onClick(View v) { 

    int targetId = v.getId(); 
    if(targetId == R.id.Buton_left) 
    { 

     if(table_center.getVisibility() != View.VISIBLE) 
     { 
      table_center.setVisibility(View.VISIBLE); 
     } 
    } 
} 

如果問題仍然存在,請發表您的清單。

+0

它說沒有定義table_center。在使用table_center.setOnClickListener(this)時它沒有被定義? – user31610 2013-03-03 01:35:03

+0

更新了答案。 @ user31610 – StarPinkER 2013-03-03 01:38:37

+0

使其成爲全局變量。感謝您的幫助,我會對此進行測試。 – user31610 2013-03-03 01:51:29