我正在创建的按钮动态...

for(int i=0; i<colSize;i++){
    final Button btn = new Button(this);    
    btn.setText(SectionName[i]);        
    btn.setTextSize(10);
    btn.setPadding(8, 3,8, 3);   
    btn.setTextColor(Color.WHITE);
    btn.setTypeface(Typeface.SERIF, Typeface.BOLD);

    btn.setOnClickListener(new OnClickListener() {  
        @Override
        public void onClick(View v) {               
            //***Every time that I click my button is selected !:)
            btn.setSelected(true);      
        }                   

     });  

    }

但是我怎么能取消选择的其他按钮就是选择,我只是希望一个按钮选择的!:)

有帮助吗?

解决方案

声明一个变量来存储点击的按钮::

的Id
private int EnabledButton;

上的每个按钮设置一个ID被创建时::

btn.setId(i);

或标签::

btn.setTag(i);   

然后在侦听获得“EnabledButton”,并调用一个函数来取消选择其他按钮::

 btn.setOnClickListener(new OnClickListener() {  
        @Override
        public void onClick(View v) {                 
        EnabledButton=btn.getId();
        DeselectButtons();        
        btn.setSelected(true);      
    }                   

 });  

要取消选择其他按钮::的作用

public void DeselectButtons() {
    for(int i=0; i<NumberofButtons;i++){            
                    if (EnabledButton!= i)
        this.findViewById(i).setSelected(false);
    }           

}

其他提示

  1. 残酷的方式(工作,如果你有几个按钮)-救你的按钮引用,并创建专用的方法,这循环你的按钮,并取消一旦你不需要
  2. 延长你的按钮类,让它听定义事件时产生的一个按钮被点击
  3. 看看 RadioGroup 执行情况
  4. 变化的#1.而不是建立单独的听众对于你的按钮仅创建一个和再利用它所有的按钮。延长这监听器从OnClickListener,并添加清单的领域。每次你将听到按钮增加键的参考清单。现在,时 onClick 是触发的简单的循环,通过名单和禁止"其他"按钮
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top