2012-06-10 84 views
1

我的Activity上有一系列ImageViews。當我想要執行某種方法時,我會執行一個方法。我有下一個:在許多視圖上設置Onclick Android

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: 
... 

但該方法沒有執行,問題不是該方法,因爲任何代碼在案件不起作用。任何想法?

+0

有你'農具onClickListener'?並將OnClickListener設置爲圖像視圖? – amp

回答

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 {} 
+0

謝謝,我忘記了image.setOnclickListener(this)! :) – Genaut

0

首先,你的活動必須實現View.OnClickListener像這樣

public class myActivity implements View.OnClickListener { 

然後,你需要設置你的點擊收聽您ImageViews。如果你所有的ImageViews是在LinearLayout中,則代碼應該是這樣的

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

乾杯。

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 
    } 
} 
相關問題