Android - ImageView On Click
Я пытаюсь проследить щелчок при щелчке по моему изображению, но я не могу понять, какие идеи?
imgView.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
Log.v(TAG, " click");
}
});
Ответы
Ответ 1
Изображения обычно не доступны для кликов, поэтому я бы предположил, что вы указали определение
android:clickable="true"
в вашем layout.xml для изображения.
Если это не помогает, отредактируйте + обновите свой вопрос и покажите нам часть вашего макета, где вы определяете изображение, чтобы посмотреть на него.
EDIT:
Пробовал это, и ваш код работал со мной тоже - даже с идентификатором верхнего регистра.
Не могли бы вы внимательно посмотреть на свой LogCat?
Моя иногда не обновляется, пока я не выбираю устройство снова.
Чтобы сделать это в Eclipse, перейдите в "Устройства" (или покажите его сначала через "Окно" ) и щелкните один раз на своем устройстве/виртуальном устройстве.
Если вы еще не нашли свою запись в LogCat-View, попробуйте создать фильтр (с помощью зеленого плюса и присвоив ему строку, которую вы определили с помощью TAG
как "по тегу журнала" ).
Взгляните на разработчиков Android > Использование DDMS в разделе "Использование LogCat"
Ответ 2
Вы забыли переопределить метод 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;
}
});
Ответ 3
1) Сначала сделайте свое изображение доступным, добавив- > андроид: 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);
}
});
}
и вызовите эту функцию в конструкторе.
Надеюсь, это сработает.