创建一个实现View.OnClickListener的动态onClick()

时间:2018-10-30 04:32:28

标签: java android imageview onclicklistener

目前,我的代码有很多冗余代码,如下所示:

iv_11.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            int theCard = Integer.parseInt((String) view.getTag());
            doStuff(iv_11, theCard);
        }
    });

    iv_12.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            int theCard = Integer.parseInt((String) view.getTag());
            doStuff(iv_12, theCard);
        }
    });

    iv_13.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            int theCard = Integer.parseInt((String) view.getTag());
            doStuff(iv_13, theCard);
        }
    });

    iv_14.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            int theCard = Integer.parseInt((String) view.getTag());
            doStuff(iv_14, theCard);
        }
    });

因此,我决定实现View.OnClickListener使其具有动态相同性,因此在我的课堂中,我实现了View.OnClickListener,然后将下面的代码替换为以下代码:

    iv_11.setOnClickListener(this);
    iv_12.setOnClickListener(this);
    iv_13.setOnClickListener(this);
    iv_14.setOnClickListener(this);

最后,我在下面的代码中添加以下代码:

    public void onClick(View v) {
    int theCard = Integer.parseInt((String) v.getTag());
    doStuff(?, theCard);
}

问题是我应该在上面的问号中输入什么?

2 个答案:

答案 0 :(得分:1)

doStuff方法应按以下代码调用。

doStuff((ImageView)v, theCard);

答案 1 :(得分:0)

将视图参数传递为

doStuff(v, theCard);