2011-11-22 103 views
1

我創建了一個ImageView對象(img),並將一些資源通過同一個對象(img)傳遞給線性佈局,其中for-loop。在循環的每次迭代中,我調用位於imgimg.setOnClickListener())上的setOnClickListener()以顯示反映迴路控制器變量(i)的值的Toast。該代碼段我試過低於:onClickListener()的設置方式

for (i = 1; i <= 6; i++) 
       { 

    img = new ImageView(this); 

    img.setImageResource(R.drawable.thambu); 

    body.addView(img); 



    this.img.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 


    Toast.makeText(Details.this, Integer.toString(i) , Toast.LENGTH_LONG).show(); 


       } 
      }); 

     } 

的事情是每當我點擊所產生的圖像,我有一個吐司顯示7

我知道爲什麼它顯示7,但我想顯示正在被點擊的圖像的索引。

是線性佈局的在其上我通過一個ImageView的的ID)

我怎樣才能做到這一點上的機器人。提前致謝。

回答

1
for (i = 1; i <= 6; i++) 
       { 

    img = new ImageView(this); 

    img.setImageResource(R.drawable.thambu); 

    body.addView(img); 
    img.setTag(i); 



    this.img.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
     int tagInt = (int) v.getTag(); 

    Toast.makeText(Details.this, Integer.toString(tagInt) , Toast.LENGTH_LONG).show(); 


       } 
      }); 

     } 

試試這個,我已經使用標籤..

1

其實,這是一個相當一般的Java問題。

你應該做的事情如下所示:

for (int i = 1; i <= 6; i++) { 

    img = new ImageView(this); 

    img.setImageResource(R.drawable.thambu); 

    body.addView(img); 


    final int j = i; 
    this.img.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     Toast.makeText(Details.this, Integer.toString(j) , Toast.LENGTH_LONG).show(); 
    } 
    }); 
} 
相關問題