Java Android代码未被接受-OnItemClickListener()-“…必须实现继承的…”

Java Android代码未被接受-OnItemClickListener()-“…必须实现继承的…”,java,android,listview,click,onitemclicklistener,Java,Android,Listview,Click,Onitemclicklistener,我的听众有问题。 值得注意的是,我是按照android开发者网站提供的指导原则写这篇文章的: 设置侦听器时: lv.setOnItemClickListener(new OnItemClickListener() { 我为新的侦听器显示了以下错误 类型new AdapterView.OnItemClickListener{}必须实现继承的抽象方法AdapterView.OnItemClickListener.onItemClickAdapterView,View,int,long 我尝试了e

我的听众有问题。 值得注意的是,我是按照android开发者网站提供的指导原则写这篇文章的:

设置侦听器时:

lv.setOnItemClickListener(new OnItemClickListener() {
我为新的侦听器显示了以下错误

类型new AdapterView.OnItemClickListener{}必须实现继承的抽象方法AdapterView.OnItemClickListener.onItemClickAdapterView,View,int,long

我尝试了eclipse的建议,并添加了明显未实现的方法,但它只生成了一个几乎相同的方法,除了参数中的实际细节之外,例如我在

"int position"
自动生成的代码已被删除

"int arg2"
通过使用这个方法,我认为我的方法是多余的,因为它不会被调用

我曾试图修改代码的各个部分,如参数的内容等,但没有成功。 因此,我基本上是在寻找一些帮助来解决这个问题,请,任何建议/指导将不胜感激。 我的完整代码如下所示:

import android.app.Activity;
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class View extends ListActivity{
static final String[] entriesArray = new String[]{
    "One", "Two", "Three", "GO"};


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setListAdapter(new ArrayAdapter<String>(this, R.layout.dbrowviewer, entriesArray));

    ListView lv = getListView();
    lv.setTextFilterEnabled(true);

    lv.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            //When clicked show toast
            Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
            Toast.LENGTH_SHORT).show();
        }

    });

}
}
还有布局,以防万一。。R.layout.dbrowviewer

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
android:textSize="16sp" >
</TextView>
还有,如果有人有空余的时间给我建议..我在toast中的TextView view.getText有一个错误,说明我不能从视图转换到TextView。我已经很快地调查了一下,但我现在正在努力解决第一个也是更重要的问题

提前感谢,

Josh

您可以尝试添加:

@凌驾

在McClick上方:

lv.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
         //When clicked show toast
         Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
         Toast.LENGTH_SHORT).show();
}

});
您可以尝试添加:

@凌驾

在McClick上方:

lv.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
         //When clicked show toast
         Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
         Toast.LENGTH_SHORT).show();
}

});

首先,这是我修改过的代码,它工作正常

lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> parnet, android.view.View view,
            int position, long id) {
        Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
                Toast.LENGTH_SHORT).show();
    }

});
这里的问题是您的类名,您选择了View作为类名,它恰好与android.View.View相同,因此如果您使用View作为侦听器的第二个参数的类型,编译器会感到困惑


我的建议是,你最好为你的活动课选择另一个名字。我通常使用活动的功能加上活动后缀作为活动类名,例如,如果您想显示用户列表,您可以选择UserListActivity,这里我选择ListActivity作为后缀,以指示该活动实际上源自ListActivity。

首先,这是我修改过的代码,它起作用了

lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> parnet, android.view.View view,
            int position, long id) {
        Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
                Toast.LENGTH_SHORT).show();
    }

});
这里的问题是您的类名,您选择了View作为类名,它恰好与android.View.View相同,因此如果您使用View作为侦听器的第二个参数的类型,编译器会感到困惑


我的建议是,你最好为你的活动课选择另一个名字。我通常使用活动的功能加上活动后缀作为活动类名,例如,如果您想显示用户列表,您可以选择UserListActivity,这里我选择ListActivity作为后缀,以指示活动实际上是从ListActivity派生的。

视图已经是一个存在的类,尝试将其重命名为其他对象….

视图已经存在,尝试将其重命名为其他对象….

刚刚尝试,为onItemClick抛出了一个新错误,声明:类型为new AdapterView的方法onItemClickAdapterView,View,int,long。OnItemClickListener{}必须重写超类方法Cheers。刚刚尝试,为onItemClick声明引发新错误:类型为new AdapterView的方法onItemClickAdapterView,View,int,long。OnItemClickListener{}必须重写超类方法Cheers。非常感谢您的帮助。我甚至没有考虑到这一点,尽管我已经尝试过在视图上乱搞。有时候,这只需要另一双眼睛……而且可能需要更多的知识和经验。再次干杯。@ChrisThompson,谢谢你,先生!而且,人们真的不应该将bare ListActivity用作活动名称。@Josh,学习东西的最好方法是犯错误-非常感谢你的帮助。我甚至没有考虑到这一点,尽管我已经尝试过在视图上乱搞。有时候,这只需要另一双眼睛……而且可能需要更多的知识和经验。再次干杯。@ChrisThompson,谢谢你,先生!而且,人们真的不应该将bare ListActivity用作活动名称。@Josh,学习东西的最好方法是犯错误-