【问题标题】:Create a dynamic onClick() which implements View.OnClickListener创建一个实现 View.OnClickListener 的动态 onClick()
【发布时间】:2018-10-30 04:32:28
【问题描述】:

目前我的代码是相当多的冗余代码如下:

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);
}

问题是我应该在上面的问号里填什么?

【问题讨论】:

  • 这里的doStuff()可能是doStuff(v, theCard);
  • 输入'v'后,我得到了这个错误:错误的第一个参数类型。找到:'android.view.View',需要:'android.widget.ImageView'
  • 与问题分享您的doStuff() 方法
  • private void doStuff(ImageView iv, int card) { ... }
  • @Steve 可以分享你的整个doStuff() 方法

标签: java android imageview onclicklistener


【解决方案1】:

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

doStuff((ImageView)v, theCard);

【讨论】:

    【解决方案2】:

    将视图参数传递为

    doStuff(v, theCard);
    

    【讨论】:

      猜你喜欢
      • 2019-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-29
      • 1970-01-01
      • 1970-01-01
      • 2011-01-28
      相关资源
      最近更新 更多