Android &引用;不是抽象的,也不重写抽象方法。”;

Android &引用;不是抽象的,也不重写抽象方法。”;,android,Android,所以,我对android开发还很陌生,一直在尝试拼凑一些代码。以下是我目前掌握的情况: package com.teslaprime.prirt; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditTe

所以,我对android开发还很陌生,一直在尝试拼凑一些代码。以下是我目前掌握的情况:

package com.teslaprime.prirt;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.AdapterView.OnItemClickListener;
import java.util.ArrayList;
import java.util.List;

public class TaskList extends Activity {
  List<Task> model = new ArrayList<Task>();
  ArrayAdapter<Task> adapter = null;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button add = (Button) findViewById(R.id.add);
    add.setOnClickListener(onAdd);

    ListView list = (ListView) findViewById(R.id.tasks);

    adapter = new ArrayAdapter<Task>(this,android.R.layout.simple_list_item_1,model);
    list.setAdapter(adapter);
    list.setOnItemClickListener(new OnItemClickListener() {
      public void onItemClick(View v, int position, long id) {
        adapter.remove(position);
      }
    });}

  private View.OnClickListener onAdd = new View.OnClickListener() {
    public void onClick(View v) {
      Task task = new Task();
      EditText name = (EditText) findViewById(R.id.taskEntry);

      task.name = name.getText().toString();

      adapter.add(task);
    }
  };
}
package com.teslaprime.prirt;
导入android.app.Activity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.ArrayAdapter;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.ListView;
导入android.widget.AdapterView.OnItemClickListener;
导入java.util.ArrayList;
导入java.util.List;
公共类任务列表扩展活动{
列表模型=新的ArrayList();
ArrayAdapter适配器=空;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
按钮添加=(按钮)findViewById(R.id.add);
add.setOnClickListener(onAdd);
ListView列表=(ListView)findViewById(R.id.tasks);
adapter=new ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,型号);
list.setAdapter(适配器);
list.setOnItemClickListener(新的OnItemClickListener(){
公共虚线单击(视图v,内部位置,长id){
适配器。拆下(位置);
}
});}
private View.OnClickListener onAdd=new View.OnClickListener(){
公共void onClick(视图v){
任务=新任务();
EditText名称=(EditText)findViewById(R.id.taskEntry);
task.name=name.getText().toString();
adapter.add(任务);
}
};
}
下面是我得到的错误:

compile:
    [javac] /opt/android-sdk/tools/ant/main_rules.xml:384: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
    [javac] Compiling 2 source files to /home/chris-kun/code/priRT/bin/classes
    [javac] /home/chris-kun/code/priRT/src/com/teslaprime/prirt/TaskList.java:30: <anonymous com.teslaprime.prirt.TaskList$1> is not abstract and does not override abstract method onItemClick(android.widget.AdapterView<?>,android.view.View,int,long) in android.widget.AdapterView.OnItemClickListener
    [javac]     list.setOnItemClickListener(new OnItemClickListener() {
    [javac]                                                           ^
    [javac] /home/chris-kun/code/priRT/src/com/teslaprime/prirt/TaskList.java:32: remove(com.teslaprime.prirt.Task) in android.widget.ArrayAdapter<com.teslaprime.prirt.Task> cannot be applied to (int)
    [javac]         adapter.remove(position);
    [javac]                ^
    [javac] 2 errors

BUILD FAILED
/opt/android-sdk/tools/ant/main_rules.xml:384: Compile failed; see the compiler error output for details.

Total time: 2 seconds
编译:
[javac]/opt/android sdk/tools/ant/main_rules.xml:384:警告:未设置“includeantruntime”,默认为build.sysclasspath=last;对于可重复的生成,将设置为false
[javac]将2个源文件编译到/home/chris kun/code/priRT/bin/classes
[javac]/home/chris kun/code/priRT/src/com/teslaprime/priRT/TaskList.java:30:不是抽象的,并且不会覆盖android.widget.AdapterView.onItemClick中的抽象方法onItemClick(android.widget.AdapterView,android.view.view,int,long)
[javac]list.setOnItemClickListener(新的OnItemClickListener(){
[javac]^
[javac]/home/chris kun/code/priRT/src/com/teslaprime/priRT/TaskList.java:32:android.widget.ArrayAdapter中的remove(com.teslaprime.priRT.Task)无法应用于(int)
[javac]适配器。移除(位置);
[javac]^
[javac]2个错误
构建失败
/opt/android sdk/tools/ant/main_rules.xml:384:Compile失败;有关详细信息,请参阅编译器错误输出。
总时间:2秒

有什么想法吗?

我不是安卓程序员,但它指的是这一行:

list.setOnItemClickListener(new OnItemClickListener() {
  public void onItemClick(View v, int position, long id) {
    adapter.remove(position);
  }
});}
您有View、int、long的方法签名,它需要

AdapterView<?> parent, View view, int position, long id as the signature
AdapterView父项、视图、int位置、长id作为签名
至于第二个问题,它说

适配器的删除方法需要
任务
对象而不是整数


abstract
类包含未实现的方法。如果要扩展它,必须实现未实现的方法。Eclipse会告诉您何时不执行必须执行的操作,如果您单击红色的“x”,将为您提供这些问题的建议解决方案。在这种情况下,它将自动包括您尚未实现的这些抽象方法的方法签名。

请耐心等待编译器告诉您的内容,我认为所有答案都在其中。:)