Тип new AdapterView.OnItemClickListener(){} должен реализовывать унаследованный абстрактный метод AdapterView.OnItemClickListener)

Тип new AdapterView.OnItemClickListener(){} должен реализовывать унаследованный абстрактный метод AdapterView.OnItemClickListener.onItemClick(AdapterView, View, int, long)

Почему я получаю это сообщение, когда пытаюсь создать учебник

package Fedail.Hello.Layout;

import android.app.Activity;
import android.os.Bundle;
import android.widget.*;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView.OnItemClickListener;


public class Layout_Feras extends Activity {
    /** Called when the activity is first created. */

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

        GridView gridview = (GridView) findViewById(R.id.gridview);
        gridview.setAdapter(new ImageAdapter(this));

        gridview.setOnItemClickListener(new OnItemClickListener(){
         public void onItemClick(AdapterView<?> parent, View v, int position, Long id){
          Toast.makeText(Layout_Feras.this,"" + position, Toast.LENGTH_SHORT).show();
         }
        }
        );
    } 
}

person Fedail Matesian    schedule 30.06.2010    source источник
comment
если вы получаете эту ошибку, следуя книге Sams по Android, попробуйте просто добавить import android.view.*; вверху! Это сработало для меня.   -  person gideon    schedule 22.11.2011


Ответы (2)


Измените это:

public void onItemClick(AdapterView<?> parent, View v, int position, Long id)

к этому:

public void onItemClick(AdapterView<?> parent, View v, int position, long id)

При переопределении суперметода вам нужно будет убедиться, что все типы данных соответствуют исходным типам.

person Cristian    schedule 30.06.2010

Измените Long на long в onItemClick() и посмотрите, поможет ли это.

person CommonsWare    schedule 30.06.2010