android - NumberPicker 对非 SDK 接口的限制
问题描述
我正在尝试创建一个这样的自定义 NumberPicker。
Class<?> numberPickerClass = null;
try {
numberPickerClass = Class.forName("android.widget.NumberPicker");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Field selectionDivider = null;
try {
if (numberPickerClass != null) {
selectionDivider = numberPickerClass.getDeclaredField("mSelectionDivider");
}
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
if (selectionDivider == null) {
return;
}
try {
selectionDivider.setAccessible(true);
selectionDivider.set(this, null);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (Resources.NotFoundException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
但是,从 API29 开始,Android 对非 SDK 接口的访问进行了限制。他们建议改用 set/getDividerHeight。但我对 Android 非常陌生,我不知道如何更新我的代码。任何人都可以帮忙吗?谢谢!
解决方案
推荐阅读
- c++ - 在 Visual Studio Code 的调试模式下将鼠标悬停在变量上时查看变量值
- javascript - 正则表达式 Javascript,必须以字母开头,开头不能有空格,允许重音
- typescript - 引用在同一接口中定义的另一种类型
- swift - 使用 NavigationLink() 时出现“类型 '[view]' 不能符合 'View'”错误
- r - R:setwd 中的错误(“C:/Users/diegoesparza/GitHub/covid_equity”):无法更改工作目录。为什么我不能更改我的工作目录?
- python - 打印和输出相同的变量会得到不同的结果 - Leetcode, "Next Permutation"
- reactjs - Symfony 和 React - 语法错误:意外的令牌,预期的“;”
- c++ - boost::hash 用于包含 boost 单元的元组
- twilio - 如果用户不接听外拨电话,则发送带有一些预录消息的语音邮件
- kubernetes - Kubernetes 在哪里挂载服务帐户机密?