переопределить или реализовать метод супертипа [ERROR]

Я пытаюсь создать метод OnItemClick для запуска другого действия из моего ListView. После создания метода я получаю несколько ошибок. сообщения об ошибках:

  1. Метод onListItemClick (ListView, View, int, long) типа LoginList должен переопределять или реализовывать метод супертипа.

  2. Метод onListItemClick (ListView, View, int, long) не определен для типа FragmentActivity

    Я пробовал реализовать другой метод (см. Ниже), но получаю похожие ошибки. Может ли кто-нибудь указать мне, что я делаю неправильно. примеры помогают больше всего

Метод: public void onItemClick (AdapterView arg0, View arg1, int arg2, long arg3)

Вот мой класс:

public class LoginList extends FragmentActivity implements OnClickListener, AdapterView.OnItemClickListener, LoaderManager.LoaderCallbacks<Cursor> {

private ListView loginList;
private Button webLogin;
private SimpleCursorAdapter adapter;



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

loginList = (ListView)findViewById(R.id.loginlist);
loginList.setOnItemClickListener(this);

webLogin = (Button)findViewById(R.id.button3);
webLogin.setOnClickListener(this);


//Specify fileds to display in the list
String[] from = new String[] { ListProvider.COLUMN_NAME_SITE };

//Bind fields to listview
int[] to = new int[] {R.id.nameView };

// Create CursorAdapter and set it to display
adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, null, from, to);

loginList.setAdapter(adapter);

getSupportLoaderManager().initLoader(0, null, this);      
}

@Override
public void onListItemClick (ListView l, View v, int position, long id) {  // 1.The method onListItemClick(ListView, View, int, long) of type LoginList must override or implement a supertype method

super.onListItemClick (l, v, position, id); //2. The method onListItemClick(ListView, View, int, long) is undefined for the type FragmentActivity

startActivity(new Intent(this, UpdateDeleteLoginList.class)
    .putExtra(ListProvider.COLUMN_ROWID, id));
}

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent webLoginIntent = new Intent (this, LoginPlusActivity.class);
startActivity(webLoginIntent);
}

@Override
public Loader<Cursor> onCreateLoader(int ignored, final Bundle args) {
return new CursorLoader(this, ListProvider.CONTENT_URI, null, null, null, null);
}

@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
adapter.swapCursor(cursor); 
}

@Override
public void onLoaderReset (Loader<Cursor> loader) {
adapter.swapCursor(null);

}

} 

person sean    schedule 28.04.2013    source источник
comment
Вы уверены, что у вас правильный импорт? Нажмите Ctrl + Shift + O (Организовать импорт) в Eclipse, чтобы импортировать все необходимые типы.   -  person Delyan    schedule 29.04.2013


Ответы (2)


Вы расширяете FragmentActivity, но не используете фрагменты.

У вас есть 2 варианта:

1. Создайте фрагмент, расширяющий ListFragment, и это то, где вы реализовали методы onClick

2-е расширение вместо ListActivity

person Gustek    schedule 28.04.2013
comment
Благодарю за ответ. Я реализовал предложение 1. Теперь, поскольку FragmentActivity не расширен, я получаю ошибку getLoaderManager (). Метод getSupportLoaderManager () не определен для типа LoginList. любой совет? - person sean; 29.04.2013
comment
Чтобы использовать LoaderManager в api ‹11, вы должны использовать вспомогательную библиотеку и фрагменты. Итак, вам нужно использовать первое решение или изменить min api на 11 - person Gustek; 29.04.2013

Я решил эту проблему, выбрав правильный импорт (android.view.View.OnClickListener). Я импортировал "android.content.DialogInterface.OnClickListener", и это дало мне ошибку samme.

person Kennet L    schedule 18.11.2013