Установите OnTouchListeners для динамически генерируемых ImageViews - PullRequest
0 голосов
/ 12 марта 2012

Я устанавливаю OnTouchListener на ImageView, а затем дублирую те же ImageView на MotionEvent.ACTION_DOWN следующим образом

if (me.getAction() == MotionEvent.ACTION_DOWN) {
        i++;
            image = new ImageView(this);
            image.setImageBitmap(btn.getDrawingCache());
            image.setId(i);
            //image.setOnTouchListener(dragit);
            layout.addView(image, i, params);
} 

то же самое следует для ACTION_MOVE и ACTION_UP.

Теперь, после создания нового представления, я пытаюсь установить для него OnTouchListener как image.setOnTouchListener(dragit);

Но проблема в том, что я могу создать 1000 таких ImageViews, как мне в конечном итоге узнать их уникальным образом?Я установил идентификатор для каждого изображения, но как мне вернуть его обратно?

Ответы [ 3 ]

1 голос
/ 12 марта 2012

layout.getChildAt (у ++). GetId ()

1 голос
/ 12 марта 2012

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

public void onClick(View v) {
    int id = v.getId(); // id that you have set 
}
1 голос
/ 12 марта 2012

добавить imageViews в массив или список, а затем в событии onTouch сравнить представление с представлениями из вашего списка

...