我的 ToggleButton 有这个问题。 我希望它在切换时创建/删除按钮,同时向按钮添加内容/功能,例如可绘制对象等。
这是当前代码:
public class BillardScoreboardActivity extends Activity {
/** Called when the activity is first created. */
Button minuskegle, minuskugle, pluskugle, pluskegle, plusmidkegle, minusmidkegle, miss;
ToggleButton toggle;
LinearLayout bottomlayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
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);
}
}
});
}
目前的问题是在这部分代码中找不到(buttontest):
else
{
pluskugle.setBackgroundResource(R.drawable.whiteballinhole);
pluskegle.setBackgroundResource(R.drawable.kegleb);
plusmidkegle.setBackgroundResource(R.drawable.midkegleplus);
bottomlayout.removeView(buttontest);
}
而如前所述,第二个问题是让按钮继承一些功能/内容。
对于更大的版本: http://i.imgur.com/KxKvh.png
顺便说一句...每次我启动该应用程序时,它都会给我 2 个应用程序供我选择,其中只有底部的应用程序有效:
最佳答案
我想问题是切换按钮的初始状态是“已选中”。这意味着当您第一次单击它时,isChecked() 将返回 false 并且您的代码的 else 部分将被执行。但那时,buttontest 还没有被添加到 bottomlayout 中。
我建议您默认将按钮放在布局中,并在您想隐藏它时调用 buttontest.setVisibility(View.GONE) ,在需要显示时调用 buttontest.setVisibility(View.VISIBLE) 。
至于你的第二个问题,只需调用 setBackgroundResource/Drawable 来添加内容(就像你已经在使用其他按钮一样)。如果您说要添加功能,我假设您打算在单击按钮时执行某些操作?如果是,添加一个 View.OnClickListener。
希望我能帮到你。
关于android - <ToggleButton> onClickListener - 创建/删除按钮+向按钮添加内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9348693/