Событие клика не распространяется на дочерний вид - PullRequest
1 голос
/ 15 сентября 2011

У меня есть активность A1, которая имеет несколько просмотров

и другой класс ViewGenerator, у которого есть метод, который возвращает представление через метод getView ()

Я вызываю этот метод, создавая объект для A1 и вызывая getView. мой класс работает нормально, и я могу получить представление. однако ни один из дочерних элементов этого представления не активируется, событие click для этого дочернего элемента не вызывается.

вот метод getView A1

public View getView(Main ctx) {

    return getArticleView();

}

вот getArticleView

private View getArticleView(Main ctx) {
    LayoutInflater lft = (LayoutInflater) ctx
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    RelativeLayout lin = (RelativeLayout) lft.inflate(
            R.layout.article_view, null);
    RelativeLayout articleView = (RelativeLayout) lin
            .findViewById(R.id.article_view);

    summaryStuff(ctx);

    return articleView;
}

вот краткий итог

private void sharingStuff(final Main ctx) {
    LayoutInflater lft = (LayoutInflater) ctx
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    RelativeLayout lin = (RelativeLayout) lft.inflate(R.layout.summary_bar,
            null);
    bookmarkRibbon = (ImageView) lin.findViewById(R.id.bookmark_selector);
    bookmarkRibbon.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            bookmarkRibbon.setImageResource(R.drawable.bookmark_yellow);
        }
    });
}

Как вы можете видеть, у bookmarkRibbon есть слушатель. однако он не активен или, по крайней мере, событие не запущено

get View вызывается из метода onCreate в Activity

1 Ответ

0 голосов
/ 15 сентября 2011

ImageView, по умолчанию, не активируются по клику, т.е. не могут регистрировать события клика.

убедитесь, что вы установили просмотр изображения кликабельным

bookmarkRibbon.setClickable(true);

сразу после ссылки на него.

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