在许多Android视图上设置Onclick

时间:2012-06-10 23:25:03

标签: android onclick case

我的Activity上有一系列ImageViews。我想在触摸其中一个时执行一个方法。我有下一个:

  public void onClick(View v) {

          switch(v.getId()){

          case R.id.image1:
              mymethod(1,1,movimientos,(ImageView)v);
              break;
          case R.id.image2:
              ponerficha(1,2,movimientos,(ImageView)v);
              break;
          case R.id.image3:
...

但是方法没有执行,问题不在于方法,因为案例中的任何代码都不起作用。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

首先,您需要检查是否已为onClickListener

注册Images
image.setOnClickListener(this);

(如果你的类实现了OnClickListener接口,你必须使用它)

然后如何声明和初始化ImageViews,无论是否拥有自己的ID。

image = (ImageView) findViewById(R.id.someId)
anotherImage = (ImageView) findViewById(R.id.anotherId)
...

您可以使用onClickListeners,例如

等anonyme类
image.setOnClickListener(
   new View.OnClickListener() {
      public void onClick(View v) {
         // some actions
      }
});

但是如果您有许多小工具来设置工具OnClickListener,则会更复杂,更好。

public class ClassName extends Activity implements View.OnClickListener {}

答案 1 :(得分:0)

首先,您的活动必须像这样实现View.OnClickListener

public class myActivity implements View.OnClickListener {

然后,您需要为ImageView设置单击侦听器。如果所有的ImageView都在线性布局中,那么代码将如下所示

LinearLayout llImageViewHolder = (LinearLayout) findViewById(R.id.llImageViewHolder);
for (int i = 0; i < llImageViewHolder.getChildCount(); i++ {
    ImageView iv = (ImageView) llImageViewHolder.getChildAt(i);
    iv.setOnClickListener(this);
}

干杯。

答案 2 :(得分:0)

您需要为每个有兴趣处理点击次数的视图添加onClick处理程序。

如何操作取决于您希望如何处理点击事件。您可以使用hawaii.five-0的方法并为所有内容设置一个事件处理程序,或者您可以为每个视图项设置一个事件处理程序,您可以在活动的onCreate方法中添加该事件处理程序:

ImageView imageView = (ImageView) findViewById(R.id.image_view);
imageView.setOnClickListener(new OnClickListener() 
{
    @Override
    public void onClick(View v) 
    {
        // Do something
    }
}