Как получить идентификатор элемента, щелкнутого в действии макета в Android?

#android #android-layout #android-button #android-event

Вопрос:

Я проверяю значение EditText, щелкнув в любом месте окна. Но для некоторых кнопок я хочу сделать что-то отличное от функциональности проверки. Как я могу получить идентификатор элемента из действия компоновки. Здесь мой макет-это ConstraintLayout. Попробовал приведенный ниже код, но он не работает.

 window_layout.setOnClickListener(new 

    View.OnClickListener() {
                @Override
                public void onClick(View v) {
                   
    
                    switch (v.getId()) {
                        case R.id.btn_tech:
                            setButtonsVisibility();
                             break;
                    }
    
                       
                }
            });
 

Пожалуйста, предложите лучший способ реализовать это.

Ответ №1:

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

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

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

     View.OnClickListener listener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.btn_tech:
                    setButtonsVisibility();
                    break;
            }
        }
    }

    for(int i = 0; i <= windowLay.getChildCount(); i  ) {
        rec.getChildAt(i).setOnClickListener(listener);
    }