为什么我不能覆盖onConfigurationChanged(配置)?

时间:2011-06-19 13:04:08

标签: java android eclipse override

我已经看到了类似的问题here,我已经添加了行 import android.content.res.Configuration;。但它并没有帮助。

我正在编写一个扩展AdapterView<Adapter>的类,Eclipse不会让我覆盖onConfigurationChanged(Configuration)。如AdapterView page in the Android Docs所示,该方法确实存在。那为什么我不能覆盖呢?

这是我的实施:

import android.content.Context;
import android.content.res.Configuration;
import android.view.View;
import android.widget.Adapter;
import android.widget.AdapterView;
public class Foo extends AdapterView<Adapter> {

  public Foo(Context context) {
    super(context);
    // TODO Auto-generated constructor stub
  }

  @Override
  public Adapter getAdapter() {
    // TODO Auto-generated method stub
    return null;
  }

  @Override
  public View getSelectedView() {
    // TODO Auto-generated method stub
    return null;
  }

  @Override
  public void setAdapter(Adapter adapter) {
    // TODO Auto-generated method stub

  }

  @Override
  public void setSelection(int position) {
    // TODO Auto-generated method stub

  }

  /*
   * Error is thrown here... The method onConfigurationChanged(Configuration) of
   * type Foo must override or implement a supertype method
   */
  @Override
  protected void onConfigurationChanged(Configuration newConfig) {
    /*
     * Error is thrown here... The method onConfigurationChanged(Configuration) is
     * undefined for the type AdapterView<Adapter>
     */
    super.onConfigurationChanged(newConfig);
  }
}

2 个答案:

答案 0 :(得分:4)

onConfigurationChanged()已添加到API级别8中的View。您在Eclipse中的构建目标(或命令行的default.properties中的目标)可能设置为较低的API级别。

答案 1 :(得分:0)

onConfigurationChanged仅在View中“自:API级别8”。如果您是针对早期版本进行开发,则没有这样的方法,因此您无法覆盖并调用它们。 “活动”中有一个,您可以通过将扩展更改为活动来证明您的代码是正确的。这不适用于编译,因为你需要一个适配器,但作为你的导入的概念证明,它将会::)