关于多个控件的响应事件

在一个项目中,如果有几十个控件的ID需要得到并且每个控件都有自己的点击响应事件,我是不是只能一个个的去声明并且用findviewbyId得到控件的ID,再然后每一个控件都给它写一个响应事件 有没有简单一点的方法 多谢

4个回答

截获程序消息队列,检索ID,消息,如果需要处理就处理。相同的处理就共用一段代码。

Theresa_zxx
ProXin 有demo可以分享吗,怎么检索到奥自己想要监听的
4 年多之前 回复

findViewById(id).setOnClickListener(this); 可以写一个循环:

 mMainView = li.inflate(R.layout.pv_yu_yue, null);
        for (int id : new int[] {
            R.id.a,R.id.b, R.id.c,
                R.id.d, R.id.e,R.id.f, 
                等等.............}) {
            mMainView.findViewById(id).setOnClickListener(this);
        }

响应事件:

 @Override
    public void onClick(View v) {
        int id = v.getId();
        String screenSize = Global.sWidth > 1200 ? "&s=1" : "";
        switch (id) {
        case R.id.a: {
                响应事件
        }
            break;
        case R.id.b: {
            响应事件
        }
        等等
        ....
        ....
    }

我是这样做的...................................

不太清楚你这些控件是随机生成的还是固定的,如果是随机生成的那更简单,重写他的监听再控件集合中调用即可

 class ItemOnClickListener implements OnClickListener {
        int id;

        public ItemOnClickListener(int id) {
            super();
            this.id = id;
        }

        @Override
        public void onClick(View v) {
            响应时间
        }
    }
qq_33144163
饭特稀0217 回复ProXin: 页面的控件是用xml文件写的 是固定的 我就想到假如有几百个控件的ID需要得到 那岂不是很麻烦 所以我想应该有简单的方法
4 年多之前 回复
Theresa_zxx
ProXin 是响应事件
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问