Android: как слышать только при нажатии на мой пользовательский класс - PullRequest
0 голосов
/ 16 августа 2011

когда я создаю класс пользовательского представления и добавляю clickListener, он срабатывает в любом месте экрана, на котором я щелкаю, даже там, где пользовательского представления нет. Если я использую тот же код с кнопкой из макета, он срабатывает только тогда, когда я нажимаю кнопку, а не где-либо на экране. Любые идеи, как просто слушать, когда мой пользовательский класс нажимается напрямую?

кнопка срабатывает только при нажатии

   Button b = (Button) findViewById(R.id.button1); 
   b.setOnClickListener(new OnClickListener() {

   @Override
   public void onClick(View v) {
      Log.d(DEBUG_TAG, "button clicked");
   }
});

Объект обводки срабатывает, когда вы нажимаете в любом месте экрана, даже за пределами ограничивающей рамки

    Stroke stroke = new Stroke(this);
    mainLayout.addView(stroke);
    stroke.setOnClickListener(new OnClickListener() {
   @Override
   public void onClick(View v) {
      // fires on every screen click :>(
      Log.d(Main.DEBUG_TAG, this.toString()+"shape clicked");
   }
    });

1 Ответ

0 голосов
/ 16 августа 2011

Я думаю, что ваш пользовательский вид просто заполняет весь экран.Вот почему он реагирует на каждый клик на экране.Вы должны сделать его меньше, и все будет работать нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...