web-dev-qa-db-ja.com

Android-クリックでImageView

私のイメージビューがクリックされたときにクリックをトレースしようとしていますが、タッチを拾うことができないようです。

imgView.setOnClickListener(new View.OnClickListener(){
    public void onClick(View v) {
        Log.v(TAG, " click");
    }
});
18
JeffLemon

通常、画像はクリック可能ではないため、定義を付けることをお勧めします

Android:clickable="true"

あなたのlayout.xmlでimageViewに。

これで問題が解決しない場合は、質問を編集して更新し、レイアウトの一部を表示してください。レイアウトを確認して、画像を確認できます。

編集:それを試してみました、そしてあなたのコードも私と一緒に働きました-大文字のID名でも。 LogCatを詳しく見ていただけますか?私がデバイスを再度選択しない限り、鉱山が実際に更新されないことがあります。

Eclipseでこれを行うには、[デバイス]ビューに移動(または[ウィンドウ]で最初に表示)し、デバイスまたは仮想デバイスを1回クリックします。

それでもLogCat-Viewにログエントリが見つからない場合は、フィルターを作成してみてください(緑色のプラス記号を使用して、TAGで「ログタグによって」と定義した文字列を与えます)。

「LogCatの使用」セクションで Android開発者> DDMSの使用 をご覧ください。

34
sunadorer

OnClickメソッドをオーバーライドするのを忘れました。これは私にとってはうまくいき、あなたのためにもうまくいくはずです:-)

imgView.setOnClickListener(new View.OnClickListener() {
   //@Override
   public void onClick(View v) {
      Log.v(TAG, " click");         
   }        
});

X座標とY座標を取得する方法は次のとおりです。

imgView.setOnTouchListener(new OnTouchListener() { 
   @Override
   public boolean onTouch(View v, MotionEvent event) {
      // X = event.getX()
      // Y = event.getY()
      return false;
   }            
});
6
Michell Bak

1)最初に、add-> Android:clickable = "true"で画像ビューをクリック可能にします。
2)次に、Javaファイルに移動し、変数の宣言を追加します。例-> private static ImageView imgview;
3)次に、この機能を追加します。

public void OnclickButtonListener() {

    imgview =  findViewById(R.id.imageView3);

    imgview.setOnClickListener(new View.OnClickListener() {
                                      @Override
                                      public void onClick(View v) {
                                          Intent intent=new Intent(timetable.this,MapsActivity.class);
                                          startActivity(intent);
                                      }
    });
}

そして、コンストラクターでこの関数を呼び出します。うまくいけばこれはうまくいくでしょう。

2
Hamza Tayyab