如何获取从 android 中的布局操作中单击的项目的 ID?

How to get id of the item clicked from layout action in android?

我正在通过单击 window 内的任意位置来验证 EditText 值。但是对于某些按钮,我想做一些不同于验证功能的事情。如何从布局操作中获取项目的 ID。这里我的布局是ConstraintLayout。尝试了以下代码,但它不起作用。

window_layout.setOnClickListener(new 

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

请提出更好的实施方法。

您现在正在做的是将侦听器添加到父视图。您需要将侦听器设置为各个视图。

您可以添加一个 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);
    }