android 根据控件的ID字符串利用反射获取UI控件

应用场景:若是咱们想获取某个自定义View里面的某个控件,知道里面的控件ID之后能够经过如下方法获取。 好比获取搜索框自定义组件里面的EditTextjava

//经过反射获取 et_search 控件
        try {
        	//也能够经过如下方法获取类
        	// Class stuClass = Class.forName("控件报名");
            Class stuClass = binding.searchView.getClass();
            //EditText 的id 为 et_search
            Field file = stuClass.getDeclaredField("et_search"); // 经过反射获取item_tv对象
            file.setAccessible(true);
            //file.get(this) 传自定义View类
            EditText EditText = (EditText) file.get(binding.searchView); // 获取EditText实例
       
        } catch (Exception e) {
            e.printStackTrace();
        }

参考此处博主web