该类型已弃用

时间:2011-04-28 23:13:37

标签: java android

我正在为一个Activity使用AbsoluteLayout并将其定义在xml文件中。

我添加了这行代码,因为我试图动态添加按钮列表,并收到以下警告。

private AbsoluteLayout layout = (AbsoluteLayout) findViewById(R.id.viewsaved); 

The type AbsoluteLayout is deprecated

代码仍然可以正常运行,但我很想知道是否有人知道为什么会出现此警告?

感谢您的帮助!

5 个答案:

答案 0 :(得分:10)

  

在计算机软件或创作中   计划标准和文件,   “弃用”一词适用于   被取代的软件功能   应该避免。虽然   不推荐使用的功能仍然存在   目前的版本,他们的使用可能会提高   警告信息推荐   替代做法和弃用   可能表示该功能将是   将来删除。功能是   弃用 - 而不是存在   删除 - 以提供落后   兼容性并给程序员谁   使用了功能时间   他们的代码符合   新标准。

来自Wikipedia - Deprecation

简而言之,该功能现在可以使用,但可能会在将来的版本中删除。你会想找到一些替代它的东西。

AbsoluteLayout建议您使用FrameLayoutRelativeLayout或自定义布局。

答案 1 :(得分:1)

看来是因为它已被弃用。不管怎么说,你不应该使用AbsoluteLayout,因为它有充分的理由而被弃用。

原因是它不允许自动处理多种屏幕尺寸,这是Android的一个非常重要的方面。

答案 2 :(得分:0)

不推荐使用的代码是由于向后兼容性原因(即旧程序使用)仍然在发行版中的代码,但已经被更新更好的代码所取代。

对于按钮列表,我建议使用ListViewLinearLayout,因为这些将允许您以列表格式添加项目。如果您需要使用AbsoluteLayout进行定位,那么您在使用LinearLayoutRelativeLayout s

时需要更具创造性

答案 3 :(得分:0)

意味着它已被标记为删除,并将在Android的某个未来版本中消失。 来自http://developer.android.com/reference/android/widget/AbsoluteLayout.html

  

此类已弃用。使用   FrameLayout,RelativeLayout或a   改为自定义布局。

答案 4 :(得分:-1)

在大多数Java库中,尤其是非常受欢迎的Java库中,维护人员非常努力地确保您是否针对旧版本的库创建代码,而不会破坏新版本(向后兼容性。)

然而,有时他们意识到他们犯了一般对图书馆至关重要的错误而且无法修复。在这种情况下,他们弃用。这意味着“是的,它将像以前一样工作,但要注意:它有一个严重的缺陷。”通常情况下,他们会建议更换。

在相关的说明中,虽然我还没有完成Android,但我已经做了很多Java gui开发。很有诱惑力地说“我只会使用绝对定位。我跟踪所有事情都没有问题。”但是随着你的程序的增长,确实很难控制它。直到现在,您还需要重构大量代码才能将其更改为更易于维护的布局。不要陷入那个陷阱:从一开始就使用一个好的布局管理器!