Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android imageview onclick可查看多个视图_Android_Arrays_Onclick_Imageview - Fatal编程技术网

Android imageview onclick可查看多个视图

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

问题:我有一个拥有300-400个图像视图的类。该类实现View.onClickListener。我可以将ImageView放在某种数组中吗? ImageView的设置如下所示

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中执行类似的操作,您可以这样做:),但可能必须将其强制转换为整数。