<togglebutton> onClickListener - 创建/删除按钮+向按钮添加内容</togglebutton>

时间:2012-02-19 11:15:44

标签: android button togglebutton

我的ToggleButton存在这个问题。 我希望它在切换时创建/删除按钮,同时向按钮添加内容/功能,如drawable等。

这是当前的代码:

            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);

        }

如前所述,第二个问题是让按钮继承一些函数/内容。

enter image description here 更大版本: http://i.imgur.com/KxKvh.png

顺便说一句......每当我启动应用程序时,它都会给我2个应用程序供选择,其中只有底层应用程序可以运行:

enter image description here

1 个答案:

答案 0 :(得分:1)

我猜问题是togglebutton的初始状态是'已检查'。这意味着当您第一次单击它时,isChecked()将返回false,并且将执行代码的else部分。但到那时,还没有将buttontest添加到bottomlayout。

我建议您默认情况下在布局中使用按钮,并在需要显示时隐藏它并调用buttontest.setVisibility(View.VISIBLE)。 至于你的第二个问题,只需调用setBackgroundResource / Drawable来添加内容(就像你已经使用其他按钮一样)。如果您说要添加功能,我假设您打算在单击按钮时执行某些操作?如果是,请添加View.OnClickListener。 希望我能帮到你。