在android中隐藏和显示表

时间:2013-03-03 01:08:01

标签: android button visibility tablelayout onclicklistener

我创建了两个表,一个在左侧,一个在屏幕的中央。启动应用程序时,左侧的表格设置为可见,中间的表格设置为不可见。

现在我想点击左表格中的按钮(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);
        }
        }

        }

}

1 个答案:

答案 0 :(得分:2)

View#getVisibility可能会返回VISIBLEINVISIBLEGONE中的一个。你在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);
        }
    }
}

如果问题仍然存在,请发布您的清单。