0

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

  1. Метод onListItemClick (ListView, вид, INT, длинный) тип LoginList должен переопределить или реализовать метод Supertype

  2. Метод onListItemClick (ListView, вид, INT, длинный) не определено для типа FragmentActivity

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

Метод: общественная пустота onItemClick (AdapterView arg0, Просмотр arg1, внутр арг2, длинные 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); 

} 

} 
+0

У вас есть правильный импорт? Нажмите Ctrl + Shift + O (Организуйте импорт) в Eclipse, чтобы импортировать все необходимые типы. – Delyan

ответ

0

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

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

первый создать фрагмент, проходящий ListFragment и это вы были реализовать методы OnClick

второй простираться ListActivity вместо

+0

Благодарим за ответ. Я реализовал sugesstion 1. теперь, поскольку FragmentActivity не расширен, я получаю ошибку getLoaderManager(). «Метод getSupportLoaderManager() не определен для типа LoginList». любой совет? – sean

+0

Чтобы использовать LoaderManager в api <11 Вы должны использовать библиотеку поддержки и фрагменты. Итак, вам нужно пойти с первым решением или изменить min api на 11 – Gustek

0

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