在Android中逐个显示按钮

时间:2014-02-13 06:30:53

标签: android button android-linearlayout

您好

我是 android 的新手。 我在android中有很多Buttons视图,我想通过点击另一个按钮逐个显示它们。

5 个答案:

答案 0 :(得分:2)

将按钮可见性设置为GONE(按钮将被完全“移除” - 按钮空间将可用于其他小部件)或INVISIBLE(按钮将变为“透明” - 其空间将为不适用于其他小部件):

View b = findViewById(R.id.button);
b.setVisibility(View.GONE);

或xml:

<Button ... android:visibility="gone"/>

参考:LINK

答案 1 :(得分:1)

使用android:visibility="visible"android:visibility="gone"android:visibility="invisible"

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_marginTop="91dp"
    android:layout_toLeftOf="@+id/textView1"
    android:text="Button"
    android:visibility="visible" />

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/button1"
    android:layout_alignLeft="@+id/textView1"
    android:text="Button"
    android:visibility="invisible" />

<Button
    android:id="@+id/button3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/button2"
    android:layout_alignBottom="@+id/button2"
    android:layout_toRightOf="@+id/button2"
    android:text="Button"
    android:visibility="invisible" />

答案 2 :(得分:1)

假设您有2个按钮:在xml中写下:使按钮2不可见,如下所示

 <Button android:id="@+id/btn1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Button 1"/>

<Button android:id="@+id/btn2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="button 2"
    android:layout_below="@+id/btn1"
    android:visibility="invisible"/>

在你的oncreate方法中写下这个:当你点击button1时,会出现button2。

     Button btn1 = (Button)findViewById(R.id.btn1);
    final Button btn2 = (Button)findViewById(R.id.btn2);

    btn1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            btn2.setVisibility(View.VISIBLE);

        }
    });

答案 3 :(得分:1)

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_marginTop="91dp"
    android:layout_toLeftOf="@+id/textView1"
    android:text="Button"
    android:visibility="gone" />


<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/button1"
    android:layout_alignLeft="@+id/textView1"
    android:text="Button"
    android:visibility="gone" />

<Button
    android:id="@+id/button3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/button2"
    android:layout_alignBottom="@+id/button2"
    android:layout_toRightOf="@+id/button2"
    android:text="Button"
    android:visibility="gone" />
  1. 首先使上面的xml布局包含所有按钮并将它们设置为GONE,因为默认情况下按钮不会占用布局中的空间,因此可以节省初始化时的空间和时间。
  2. 现在,在点击事件的代码中,只需将这些按钮的可见性设置为 VISIBLE

    更改可见性的步骤 HashMap map = new HashMap(); map.put(R.id.button1,new Integer [] {R.id.button2,R.id.button3,R.id.button4});

  3. public void onClick(查看v){

    Integer [] buttonsToShow = map.get(R.id.v.getId());

    如果(buttonsToShow!= NULL)    for(int button:buttonsToShow){

    findViewById(按钮).setVisibility(View.VISIBLE);

    }    }

答案 4 :(得分:0)

我写了下面的代码并解决了我的问题。也许它对任何人都有用 next =(Button)findViewById(R.id.next);         next.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) 
        {
            if(i<movie_list.length-3)
            {
                movie_list[i].setVisibility(View.GONE);
                movie_list[i+3].setVisibility(View.VISIBLE);
                i++;
            }else{
                Toast.makeText(getApplicationContext(), "That is the end of the buttons ", Toast.LENGTH_SHORT).show();
            }
        }
    });