首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

在这发帖,没有报多大希望有人回

2014-01-15 
在这发帖,没报多大希望有人回。如图所示 ,可不可以把每行的5个代码联系起来不用一个一个设监听,一个按钮点

在这发帖,没报多大希望有人回。
在这发帖,没有报多大希望有人回

如图所示 ,可不可以把每行的5个代码联系起来不用一个一个设监听,一个按钮点击时变红其他自己变黑,一个一个设监听来改变太麻烦了
[解决办法]


ArrayList<Button> btns = new ArrayList<Button>();//每行5个按钮,一共15个,放到集合里面。
int bId = 1;
for (Button btn : btns) { //id弄个序号,然后循环,就不用一个个的设置了。
    btn.setId(bId++);
    btn.setOnClickListener(new OnClickListener(){
          public void click(View v){
                //这地方用switch,可以知道是那个按钮,然后做些事情。
          }
    });
}



[解决办法]
可以啊啊啊啊
[解决办法]

    private void updateBg(LinearLayout parent, int clickedIndex) {
        final int count = parent.getChildCount();
        for (int i = 0 ; i < count ; ++i) {
            if (clickedIndex == i) {
                parent.getChildAt(i).setBackgroundColor(Color.RED);
            } else {
                parent.getChildAt(i).setBackgroundColor(Color.BLACK);
            }
        }
    }


上面三排按钮的父控件布局LinearLayout都可以调用这个函数来实现修改按钮背景。
clickIndex这个参数表示点击选中的按钮的索引号,从0开始算起,每个按钮你肯定要设置onClick监听事件,这样就可以获得索引号。
意思应该大致说明白了。

可能还有一种方法,直接xml配置的selector的方法,具体没实践过,楼主可以研究一下。

热点排行