我正在尝试覆盖onItemClick方法。我将把我的进口和方法放在下面:
import android.app.Activity;
import android.app.ListActivity;
import android.content.ContentUris;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Contacts.People;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
public class ListViewActivityActivity extends ListActivity implements OnItemClickListener {
@Override
public void onItemClick(AdapterView adview, View target, int position, long id) {}
}
我的问题是 onItemClick 方法为什么要加下划线?我究竟做错了什么? 我尝试重新加载项目,但没有帮助。有人遇到同样的问题吗?
PS当我将鼠标悬停在它上面时说:ListViewActivityActivity类型的onItemClick方法(AdapterView,View,int,long)必须覆盖超类方法
答案 0 :(得分:4)
您的项目的Java编译器级别设置为1.5。对于在Java 1.5中实现接口方法的类,不允许@Override
注释;这只允许从Java 1.6开始。
进入项目属性(项目的上下文菜单),选择Java Compiler
并将编译器合规性级别设置为1.6。
答案 1 :(得分:0)
您使用的是非泛型类型AdapterView
,但原始方法使用泛型类型。它是由编译器允许的,但不推荐使用。
这是覆盖onItemClick
的正确方法:
@Override
public void onItemClick(AdapterView<?> adview, View target, int position, long id) {}