如何在按钮数组上管理setOnClickListener

whi*_*GER 0 android android-widget android-layout

我有一个动态的按钮阵列,我想知道如何处理每个按钮上的onclick?

谢谢

Edw*_*alk 5

我认为不需要为每个按钮创建一个新的OnClickListener - 所有按钮都可以共享一个监听器.

private OnClickListener myListener = new OnClickListener() {
  public void onClick(View v) {
    Object tag = v.getTag();
    // Do something depending on the value of the tag
  }
};

...

for (int i=0; i < btns.length; ++i) {
  btns[i].setOnClickListener(myListener);
  btns[i].setTag(some_identifying_information);
}
Run Code Online (Sandbox Code Playgroud)

当然,您可以为每个按钮创建一个唯一的OnClickListener,并以此方式利用:

for (int i=0; i < btns.length; ++i) {
  final Button btn = btns[i];
  btn.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
      // do something depending on the value of btn, which you're allowed
      // to reference here because it was declared final above.
    }
  });
}
Run Code Online (Sandbox Code Playgroud)