android 反射调用 TabLayout的非公开方法selectTab

来源:互联网 发布:淘宝主板可靠吗 编辑:程序博客网 时间:2024/06/13 22:16


测试用,tablayout的tab有个公开的方法 

public void select()

    private void te_dddd(TabLayout.Tab tab){        try {            // 加载指定的类            Class cls = Class.forName("android.support.design.widget.TabLayout");            Class[] arrayOfClass = new Class[1];            arrayOfClass[0] = Context.class;//            Constructor ct = cls.getDeclaredConstructor(arrayOfClass);//            ct.setAccessible(true);//            Object obj = ct.newInstance(null);            Object obj = mTagLayout;//            Object obj = cls.newInstance();            // 根据方法名获取指定方法的参数类型列表            Class paramTypes[] = getParamTypes(cls, "selectTab");            // 在指定类中获取指定的方法 (all)            Method meth = cls.getDeclaredMethod("selectTab", paramTypes);            meth.setAccessible(true);            // 调用指定的方法并获取返回值为Object类型            Object[] arrayOfObject = new Object[2];            arrayOfObject[0] = tab;            arrayOfObject[1] = true;            Object retObject = meth.invoke(obj, arrayOfObject);        } catch (Exception e) {            e.printStackTrace();            Log.e("hrl", "e " + e);        }    }















0 0
原创粉丝点击