最初将按钮设置为GONE?

时间:2012-02-22 17:49:44

标签: android android-layout button togglebutton

我需要在初始屏幕上使用此未命中按钮,然后在切换按钮切换时出现,并在重新切换时再次出现。

持续存在的问题是按钮最初没有在初始屏幕上消失,我必须按下切换按钮两次,以便它消失。

这是代码:

toggle = (ToggleButton) findViewById(R.id.bRedGreen);
    toggle.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            pluskugle = (Button) findViewById(R.id.bBallhole);
            minuskugle = (Button) findViewById(R.id.bBallhole);

            pluskegle = (Button) findViewById(R.id.bKegle);
            minuskegle = (Button) findViewById(R.id.bKegle);

            plusmidkegle = (Button) findViewById(R.id.bKeglemid);
            minusmidkegle = (Button) findViewById(R.id.bKeglemid);

            bottomlayout = (LinearLayout) findViewById(R.id.bottomlayout);

            miss = (Button) findViewById(R.id.bMiss);

        if(toggle.isChecked())
        {
            minuskugle.setBackgroundResource(R.drawable.redballinhole);
            minuskegle.setBackgroundResource(R.drawable.redkegle);
            minusmidkegle.setBackgroundResource(R.drawable.midkegleminus);
            miss.setBackgroundResource(R.drawable.missbutton);

            miss.setVisibility(View.VISIBLE);

        }

        else 
        {
            pluskugle.setBackgroundResource(R.drawable.whiteballinhole);
            pluskegle.setBackgroundResource(R.drawable.kegleb);
            plusmidkegle.setBackgroundResource(R.drawable.midkegleplus);
            miss.setVisibility(View.GONE);

        }

        }

    });
}

4 个答案:

答案 0 :(得分:2)

您可以使用android:visibility =" off"

在布局中设置其可见性

答案 1 :(得分:1)

bMiss

的xml中

添加android:visibility:"gone"

答案 2 :(得分:1)

您所看到的行为是两件事的结果:

- 按钮最初可见的原因是你的XML中没有android:visibility =“gone”,并且没有触发将其设置为不可见的代码,因为还没有发生任何点击。

- 您必须按两次切换按钮将其设置为不可见的原因:第一次单击将切换从未选中切换为选中,因此代码将按钮(已经可见)设置为可见。第二次点击是第一次点击onClick并且未选中切换按钮。那时你实际上看到按钮变得不可见了。

要修复,只需将“android:visibility =”GONE“添加为布局XML中未命中按钮的属性。

答案 3 :(得分:1)

我建议您将所有findViewById方法从切换onClick方法移动到onCreate或初始化方法。然后在你的下面:

miss =(Button)findViewById(R.id.bMiss);

把:

miss.setVisibility(View.INVISIBLE);

miss.setVisibility(View.GONE);