2013-03-03 63 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