1

アクティビティに一連の ImageView があります。そして、これらのいずれかに触れたときにメソッドを実行したい。私は次のものを持っています:

  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:
...

しかし、メソッドは実行されません。ケース内のコードが機能しないため、問題はメソッドではありません。何か案が?

4

3 に答える 3

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 {}
于 2012-06-10T23:27:29.187 に答える
0

まず、アクティビティは View.OnClickListener を次のように実装する必要があります

public class myActivity implements View.OnClickListener {

次に、ImageViews のオンクリック リスナーを設定する必要があります。すべての ImageViews が linearlayout にある場合、コードは次のようになります

LinearLayout llImageViewHolder = (LinearLayout) findViewById(R.id.llImageViewHolder);
for (int i = 0; i < llImageViewHolder.getChildCount(); i++ {
    ImageView iv = (ImageView) llImageViewHolder.getChildAt(i);
    iv.setOnClickListener(this);
}

乾杯。

于 2012-06-10T23:30:13.230 に答える