我需要在初始屏幕上使用此未命中按钮,然后在切换按钮切换时出现,并在重新切换时再次出现。
持续存在的问题是按钮最初没有在初始屏幕上消失,我必须按下切换按钮两次,以便它消失。
这是代码:
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);
}
}
});
}
答案 0 :(得分:2)
您可以使用android:visibility =" off"
在布局中设置其可见性答案 1 :(得分:1)
在bMiss
添加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);