我的Activity上有一系列ImageViews。我想在触摸其中一个时执行一个方法。我有下一个:
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 :(得分:1)
首先,您需要检查是否已为onClickListener
Images
image.setOnClickListener(this);
(如果你的类实现了OnClickListener接口,你必须使用它)
然后如何声明和初始化ImageViews
,无论是否拥有自己的ID。
image = (ImageView) findViewById(R.id.someId)
anotherImage = (ImageView) findViewById(R.id.anotherId)
...
您可以使用onClickListeners
,例如
image.setOnClickListener(
new View.OnClickListener() {
public void onClick(View v) {
// some actions
}
});
但是如果您有许多小工具来设置工具OnClickListener
,则会更复杂,更好。
public class ClassName extends Activity implements View.OnClickListener {}
答案 1 :(得分:0)
首先,您的活动必须像这样实现View.OnClickListener
public class myActivity implements View.OnClickListener {
然后,您需要为ImageView设置单击侦听器。如果所有的ImageView都在线性布局中,那么代码将如下所示
LinearLayout llImageViewHolder = (LinearLayout) findViewById(R.id.llImageViewHolder);
for (int i = 0; i < llImageViewHolder.getChildCount(); i++ {
ImageView iv = (ImageView) llImageViewHolder.getChildAt(i);
iv.setOnClickListener(this);
}
干杯。
答案 2 :(得分: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
}
}