Android imageview onclick可查看多个视图
问题:我有一个拥有300-400个图像视图的类。该类实现View.onClickListener。我可以将ImageView放在某种数组中吗? ImageView的设置如下所示Android imageview onclick可查看多个视图,android,arrays,onclick,imageview,Android,Arrays,Onclick,Imageview,问题:我有一个拥有300-400个图像视图的类。该类实现View.onClickListener。我可以将ImageView放在某种数组中吗? ImageView的设置如下所示 ImageView IM1 = new ImageView(this); IM1.setImageResource(R.drawable.have_fun); 我不明白如何在课堂上使用这些。我通常使用getId,但是这些没有id,因为它们不是xml格式的 例如,如果IM1是您的ImageView,则: IM1.se
ImageView IM1 = new ImageView(this);
IM1.setImageResource(R.drawable.have_fun);
我不明白如何在课堂上使用这些。我通常使用getId,但是这些没有id,因为它们不是xml格式的 例如,如果IM1是您的ImageView,则:
IM1.setOnTouchListener(new View.OnTouchListener(){
public boolean onTouch(View v, MotionEvent event){
/*your code here*/
return true;
}
});
或者如果您只想处理onClick,那么
IM1.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
/*your code here*/
}
});
不同之处在于,使用onTouch事件,您还可以处理“移动”和“拖动”操作。当您的手指在ImageView上时,onTouch调用。onClick-仅单击一次
或者,您可以创建另一个实现接口OnClickListener的类,例如:
public class TouchController implements OnClickListener{
/*any code that you need*/
public void onClick(View v){
/*your code*/
}
}
然后
TouchController controller = new TouchController();
IM1.setOnClickListener(controller);
例如,如果IM1是您的ImageView,则:
IM1.setOnTouchListener(new View.OnTouchListener(){
public boolean onTouch(View v, MotionEvent event){
/*your code here*/
return true;
}
});
或者如果您只想处理onClick,那么
IM1.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
/*your code here*/
}
});
不同之处在于,使用onTouch事件,您还可以处理“移动”和“拖动”操作。当您的手指在ImageView上时,onTouch调用。onClick-仅单击一次
或者,您可以创建另一个实现接口OnClickListener的类,例如:
public class TouchController implements OnClickListener{
/*any code that you need*/
public void onClick(View v){
/*your code*/
}
}
然后
TouchController controller = new TouchController();
IM1.setOnClickListener(controller);
可以对视图使用标记 为imageView设置整数标记
ImageView IM1 = new ImageView(this);
IM1.setImageResource(R.drawable.have_fun);
IM1.setTag(1);
在onClickListener中,您引用了被单击的视图,您可以使用
int imageClicked = (int) clickedView.getTag();
比较单击的
图像
以了解单击了哪个图像。您可以使用标签查看
为imageView设置整数标记
ImageView IM1 = new ImageView(this);
IM1.setImageResource(R.drawable.have_fun);
IM1.setTag(1);
在onClickListener中,您引用了被单击的视图,您可以使用
int imageClicked = (int) clickedView.getTag();
比较单击的
图像
以了解单击了哪个图像。创建图像时,可以动态设置id:
for (int i = 0; i < listImages.size(); i++) {
final ImageView image = listImages.get(i);
image.setImageResource(R.drawable.have_fun);
image.setId(i);
}
创建图像时,可以动态设置id:
for (int i = 0; i < listImages.size(); i++) {
final ImageView image = listImages.get(i);
image.setImageResource(R.drawable.have_fun);
image.setId(i);
}
那就是onTouch,他想要onClick。onClick和onTouch是一样的吗?好的,但是没有更简单的方法来编写代码,然后为每个图像编写一个onClick,并通过
imageview IM1=new imageview设置每个imageview(这个);IM1.setImageResource(R.drawable.have_fun)代码>?我不能使用工具onclick吗@您好,在我的回答中添加了一个例子,就是onTouch,他想要onClick。onClick和onTouch是一样的吗?好的,但是没有更简单的方法来编写代码,然后为每个图像编写一个onClick,并通过imageview IM1=new imageview(这个)设置每个imageview;IM1.setImageResource(R.drawable.have_fun)代码>?我不能使用工具onclick吗@您好,在我的回答中添加了一个示例Ok,可以在onclick中执行类似的操作,如果一个用户想要一个开关public void onclick(视图v){switch(v.getTag)}是的,您可以这样做:),但您可能必须将其转换为整数。好的,如果一个用户想要一个开关public void onclick(视图v){switch(v.getTag)}是的,可以在onclick中执行类似的操作,您可以这样做:),但可能必须将其强制转换为整数。