我正在设计一个应用程序,其中最小的SDK为9,目标SDK为18。我想在屏幕上显示一个时钟。因此,我在布局中添加了一个DigitalClock。我收到警告说数字时钟在API 17中被废弃了,所以我添加了文本时钟。但是TextClock只受API 17和更高版本的支持。如果在设备上找到的SDK是< 17,如果SDK找到是>= 17,我应该做什么来使数字时钟出现?
我是通过XML添加DitialClock/TextClock,而不是在代码behnd中添加。
发布于 2013-09-15 08:07:39
你必须明白,“废弃”一词并不意味着“不可用”。如果您打算在将来维护您的代码,那么继续使用不受欢迎的API/小部件/任何东西并不是一个可怕的罪行,因为您可以回头修复一些东西。被废弃的代码最终将变得不受支持,但这可能是几年后才真正发生的事情。
然而,一个更优雅的解决方案是通过代码添加时钟。通过这样做,您可以根据用户检测到的API级别进行分支,如下所示:
int sdk = android.os.Build.VERSION.SDK_INT;
if(sdk < android.os.Build.VERSION_CODES.HONEYCOMB)
{
// Code for users with API version Honeycomb or greater
}
else
{
// Code for users with API versions prior to Honeycomb
}
您甚至可以提供两个布局,并决定在这种逻辑中使用哪一个。
发布于 2013-09-15 08:02:56
如果你想用xml来做它,你应该创建两个不同的布局,其中一个将包含数字时钟和另一个文本时钟。然后将它们放入适当的文件夹中,如:/res/lay-v11或/res/values v13。
https://stackoverflow.com/questions/18810187
复制相似问题