2015-05-24 89 views
1

当按下按钮后,它的背景状态发生变化,我希望当我再次按下按钮时,它的背景状态将回到初始状态。这意味着首先点击选择,然后点击取消选择它。我怎么能这样做?选择和取消选择按钮onClick在Android中点击按钮

orderBtn = new OrderButton(getApplicationContext()); 
orderBtn.setId(i); 
orderBtn.setText(option); 
orderBtn.setTextColor(Color 
       .parseColor("#FFFFFF")); 
orderBtn.setBackgroundResource((R.drawable.selector)); 
orderBtn.setOnClickListener(new OnClickListener() { 

@Override 
public void onClick(View v) { 
    v.setSelected(true); 
    enabledButton = orderBtn.getId(); 
    deselectButtons(); 

} 
}); 

public void deselectButtons() { 
    for (int i = 0; i < jsonArray.length(); i++) { 
     if (enabledButton != i) 
      findViewById(i).setSelected(false); 
} 
+0

共享代码,你已经取得了至今 – Mithun

回答

0

使用ToggleButton,你可以自定义你的背景,但是你想用自定义选择。

更新:

根据您的实现,你基本上要达到RadioGroup/RadioButton功能,其中如果有一个Turned On,其他基本上都是Turned Off。我强烈建议不要采用您的方法,而应使用自定义RadioGroup/RadioButton,以便您可以使用此功能Turn On/Off

+0

我想用普通按钮是什么。 – Faravy

+0

但您的要求更多的是切换... – Mithun

+0

在这里我必须使用动态实现的多个按钮。 – Faravy

0

所以,有一两件事你可以做的是:

yourButton.setOnClickListener(new ClickListener(){ 
int check = 1; //When check = 1 ,you have your FIRST background set to the button 

@Override 
public void Click(View v){ 
    if(check == 1){ 
     yourButton.setBackground(R.drawable.secondBackground); 
     check = 0; 
    }else{ 
     yourButton.setBackground(R.drawable.firstBackground); 
     check = 1; 
    } 
} 

}); 

Amyways,我记得我通过修改一个切换按钮使用选择这样做,但我真的,真的没有时间来搜索我的旧的项目和东西......并且就优化而言,选择器应该更好一些,但如果你没有大量的这些按钮来检查它们的背景并不断改变它们,我想你应该没问题。

让我知道,如果这有助于我们^^

+0

我已经完成了你所说的话。如果我按下按钮它将进入选择状态,我想再次按下按钮并返回到初始状态。 – Faravy

+0

哦,我明白你在说什么......我现在很匆忙,但我会在考试后回来给我答复 – Vlad

+0

我会在几分钟内改变我的答案,正确的答案。 ,今天很忙,现在还是......白夜传入.. – Vlad