[英]How can I add onClickListener to each ImageView separately?
我已經在Android中以編程方式添加了線性布局,並向其中添加了ImageViews。 我使用以下代碼相同。
LinearLayout layout = (LinearLayout)findViewById(R.id.linear1);
for(int i=0;i<4;i++)
{
imagev = new ImageView(this);
imagev.setLayoutParams(new android.view.ViewGroup.LayoutParams(300,150));
imagev.setMaxHeight(600);
imagev.setMaxWidth(600);
layout.addView(imagev);
}
您可以執行以下操作:
myClickListener1 = new View.OnClickListener ...
myClickListener2 ...
myClickListener3 ...
myClickListener4 ...
for(int i=0;i<4;i++)
{
imagev = new ImageView(this);
imagev.setLayoutParams(new android.view.ViewGroup.LayoutParams(300,150));
imagev.setMaxHeight(600);
imagev.setMaxWidth(600);
switch(i){
case 0: imagev.setOnClickListener(myClickListener1);
break;
case 1: ...
...
}
layout.addView(imagev);
}
如果要實現此目的,我將為每個imageview提供一個特定的標簽,然后為每個imageview設置相同的onClickListener。 然后,在onClickListener中,我將檢查單擊的imageview的標記,並根據單擊的imageview進行操作。
LinearLayout layout = (LinearLayout)findViewById(R.id.linear1);
for(int i=0;i<4;i++)
{
imagev = new ImageView(this);
imagev.setLayoutParams(new android.view.ViewGroup.LayoutParams(300,150));
imagev.setMaxHeight(600);
imagev.setMaxWidth(600);
imagev.setTag(i);
imagev.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
switch(Integer.valueOf(v.getTag())) {
case 0: ...
break;
case 1: ...
break;
}
}
layout.addView(imagev);
}
這樣可以避免必須具有4個不同的onClickListener,並為您提供一些更簡潔的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.