2

我正在为从 v10 到 v17 的 API 开发应用程序。

我的活动实现了仅可从 API v14 获得的 OnDragListener。

public class MyActivity extends Activity implements View.OnDragListener {
    ....
}

因此,当应用程序安装在使用 API v10 的设备上时,它无法使用java.lang.NoClassDefFoundError.

我知道这不适用于 API v10,没关系。我在活动中处理这个。

我只是想知道当涉及到这样的功能时,处理不同 API 版本的做法是什么?

4

2 回答 2

1

首先,您可以检查 API 级别,并根据该级别执行或不执行您的代码。例如 :

if(Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB){
     // don't use it.
} else {
     // use the new API :
     // myView.setOnDragListener(...);
}

如果您也想支持旧的 android 版本,则不应在 Activity 中实现新 API 的接口。而不是使用上面的方法。

于 2013-05-13T08:10:37.923 回答
1

在您的情况下,您不应声明要实施的活动View.OnDragListener。只需在另一个类中执行逻辑并仅在需要时实例化它(我想您仅为 API >= 14 添加侦听器)。

于 2013-05-13T08:06:55.507 回答