给button设置背景图片很简单,设置点击时的背景也简单,做一个selector选择器就好了。当我想在点击时和松开后背景不再改变回去时遇到了麻烦,无论怎么设置selector都不起作用。无奈上网求救,遇一好心人解答,感谢他,现将解决方法记录下来。
第一种方法:给按钮添加监听事件,并做标志。这个貌似要在xml文件给按钮加上背景。
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(btstate==0){
// button.setBackgroundColor(0xff000000); //改变背景色
button.setBackgroundResource(R.drawable.radio_btn); //改变背景图片
btstate=1;
}else if (btstate==1) {
// button.setBackgroundColor(0xff2bb8aa);
button.setBackgroundResource(R.drawable.radio_btn_none);
btstate=0;
}
}
});
第二种方法:用checkbox xml文件中给设置android:button="@null",不显示方框+对号。监听事件
button2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// TODO Auto-generated method stub
if(isChecked){
} else {
}
}
});
我在使用的时候用的第一种方法,点击按钮出现一个popupwindow,再点击消失,给popupwindow加上了消失的监听事件
pwMyPopWindow.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss() {
button.setBackgroundResource(R.drawable.radio_btn_none);
btstate=0;
}
});
总之就是这样,在好心人帮助下又学到了新知识。
文章详细介绍了如何通过监听事件和设置标志来解决Android按钮在点击和松开时背景状态更新的问题,包括两种实现方法:一种是在按钮点击时修改背景状态并相应改变背景颜色和图片;另一种则是利用CompoundButton的监听事件实现背景的动态更新。同时,通过实例展示了如何在按钮点击出现PopupWindow并进行消失监听时调整背景状态。
1192

被折叠的 条评论
为什么被折叠?



