Как определить какой был нажат элемент View?

328
24 июля 2017, 13:13

Попробую объяснить. Значит добавляю с помощью inflater картинки на экран. Добавил обработчик нажатия, но не могу понять, как определить какой элемент был нажат, чтобы каждому элементу создать определенное действие?

Сам код:

private void loadNextFlag() {
    /////////////////
    mInt=0;
    LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    // цикл выводит два LinearLayout
    for (int row = 0; row < 2; row++){
        LinearLayout linLayout = getTableRow(row);
        // Место Кнопки
        // в каждый LinearLayout добавляю три картинки
        for (int column = 0; column < 3; column++){
            ///////////
            // макет для каждой картинки
            View view = inflater.inflate(R.layout.guess_button, linLayout, false);
            mImageView = (ImageView) view.findViewById(R.id.imageView1);
            // вставляю картинку из массива по индексу mInt
            mImageView.setImageResource(persons.get(mInt).getPhotoId());
            linLayout.addView(view);
            // обработчик нажатие
            view.setOnClickListener(guessButtonListener);
            mInt=mInt+1;
        } 
    } 
}

    // нажатие
private View.OnClickListener guessButtonListener = new View.OnClickListener(){
    @Override
    public void onClick(View v){
};
Answer 1

почему не используете gridview или recyclerview?

// обработчик нажатия

   view.setTag(mInt); // для уникальности
   view.setOnClickListener(guessButtonListener);

примерно такой обработчик нажатия

private View.OnClickListener guessButtonListener = new View.OnClickListener(){
    @Override
    public void onClick(View v){
      Toast.makeText(context, "position " + v.getTag(), Length.SHORT).show();
};
READ ALSO
Не приходят уведомления Android

Не приходят уведомления Android

ЗдравствуйтеПытаюсь учить разработку приложений под Android устройства

269
java sqlite PreparedStatement не возвращает результат

java sqlite PreparedStatement не возвращает результат

Не происходит вход в тело цикла while при использовании первого запроса (rs: колонок 2, строк 0)Оба запроса рабочие, проверены в SQLiteStudio

251
Не работает валидация формы на jquery

Не работает валидация формы на jquery

Не работает валидация формы на jqueryНе могу понять почему

271