2013-12-10 3 views
0

Я новичок в Android и Java. Я создал пользовательский элемент управления ListView следующим образом:onScroll из списка ListView Android не называется

public class CustomEndlessListView extends ListView implements 
     OnScrollListener, android.widget.AdapterView.OnItemClickListener, IReceiver { 

, а затем я нажал опцию «Добавить Unimplemented методы» на Eclipse.

Этот результат следующим способом:

public void onScroll(AbsListView view, int firstVisibleItem, 
     int visibleItemCount, int totalItemCount) { 
    Log.d(TAG,"onScroll !!!!!"); 
} 

без каких-либо @Override аннотации. Если я вручную добавить @Override аннотацию я получаю:

Множественные маркеры на этой линии - реализует android.widget.AbsListView.OnScrollListener.onScroll - Метод OnScroll (AbsListView, Int, Int, Int) из тип CustomEndlessListView должен переопределять метод суперкласса

При запуске приложения (без аннотации @Override) этот метод (onScroll) никогда не вызывается. Есть идеи? Спасибо заранее.

ответ

0

Вы должны зарегистрироваться для прокрутки событий, вызвав setOnScrollListener. Так как вы реализовали интерфейс OnScrollListener в вашем ListView подкласса (который не является единственной возможностью), вы можете попробовать что-то вроде следующего:

public class MyActivity extends ListActivity { 
    @override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.custom_list_layout); 
     CustomEndlessListView lv = new CustomEndlessListView(this); 
     lv.setOnScrollListener(lv); 
     setListAdapter(lv); 
    } 
} 

В качестве альтернативы вы можете зарегистрироваться на события в вашей CustomEndlessListView конструктору:

public CustomEndlessListView(Context context) { 
    // .... 
    setOnScrollListener(this); 
    // .... 
} 
Смежные вопросы