在另一个单击按钮上将动态创建的切换按钮的状态更改为打开和关闭

时间:2014-08-19 10:22:12

标签: android

我需要动态创建一个切换按钮&单击按钮时,所有切换按钮都应更改为默认状态。

for (int i = 0; i < pref_Array.length; i++) {
                 ToggleButton tglPreference = new ToggleButton(this);
                tglPreference.setId(i);
                tglPreference.setTextSize(20);
                tglPreference.setBackgroundResource(R.drawable.btn_toggle);
                tglPreference
                        .setLayoutParams(new LinearLayout.LayoutParams(
                                LayoutParams.MATCH_PARENT,
                                LayoutParams.WRAP_CONTENT));
                tglPreference.setTextOn("On);
                tglPreference.setTextOff("OFF);
}


btn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

        }
    });

2 个答案:

答案 0 :(得分:0)

您需要将ToggleButtons存储在ArrayList中以供日后访问。

List<ToggleButton> toggleButtons = new ArrayList<ToggleButton>();

for (int i = 0; i < pref_Array.length; i++) {
    ToggleButton tglPreference = new ToggleButton(this);
    tglPreference.setId(i);
    tglPreference.setTextSize(20);
    tglPreference.setBackgroundResource(R.drawable.btn_toggle);
    tglPreference
        .setLayoutParams(new LinearLayout.LayoutParams(
                                LayoutParams.MATCH_PARENT,
                                LayoutParams.WRAP_CONTENT));
    tglPreference.setTextOn("On);
    tglPreference.setTextOff("OFF);
    toggleButtons.add(tglPreference);
}

然后在你的按钮onClickListener ...

btn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            for ( ToggleButton button : toggleButtons ) {
                  // set button to default state....
            }
        }
    });

答案 1 :(得分:0)

您可以这样做:

输入getTag / setTag:

button1.setTag(1);
button2.setTag(2);

现在我们可以为每个按钮使用相同的OnClickListener:

listener = new OnClickListener() {
    @Override
    public void onClick(View v) {
        doAction(v.getTag());
    }
};