我已经看到了类似的问题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);
}
}
答案 0 :(得分:4)
onConfigurationChanged()
已添加到API级别8中的View
。您在Eclipse中的构建目标(或命令行的default.properties
中的目标)可能设置为较低的API级别。
答案 1 :(得分:0)
onConfigurationChanged
仅在View中“自:API级别8”。如果您是针对早期版本进行开发,则没有这样的方法,因此您无法覆盖并调用它们。 “活动”中有一个,您可以通过将扩展更改为活动来证明您的代码是正确的。这不适用于编译,因为你需要一个适配器,但作为你的导入的概念证明,它将会::)