ScrollView gdy scroll dojedzie do końca

0

Witam w ten ciepły poniedziałek! !
Chciałbym wyłapywać moment, w którym scroll w ScrollView dojedzie do końca ekranu i w tym momencie dorzucać mu więcej danych. Przejrzałem już kilkanaście tematów w google i nie mogę sobie z tym poradzić. Wychodzi na to, że należy wykorzystać funkcję onScrollChanged. Także w oparciu o google stworzyłem klasę dziedziczącą po ScrollView.
Tworzę obiekt klasy, a następnie chcę przypisać item ScrollView do obiektu w onCreate to wywala mi błąd ActivityThread.performLaunchActivity, Source not found.

MainActivity.context = getApplicationContext();
    	
    	InteractiveScrollView test = new InteractiveScrollView(context);
    	test = (InteractiveScrollView)findViewById(R.id.boardScrollView);

Nie wiem dlaczego.
Proszę o pomoc

0

Yy. Skoro InteractiveScrollView jest brany z layoutu to nie ma potrzeby tworzyć go za pomocą new. Co do reszty to podaj więcej kodu.

1

Sprawdź czy w XMLu zmieniłeś ScrollView na InteractiveScrollView. No i fajnie jakbys pokazał klasę InteractiveScrollView. Może wtedy pomożemy z problemem

0

Zmieniłem teraz, w ogóle mi się aplikacja nie odpala Source not found. Nie mogę dać kodu klasy w znaczniki JAVA, dlatego nie podałem kodu wcześniej. Daje jako tekst:

public class InteractiveScrollView extends ScrollView {
OnBottomReachedListener onBottomReachedListener;

public InteractiveScrollView(Context context, AttributeSet attrs,
		int defStyle) {
	super(context, attrs, defStyle);
}

public InteractiveScrollView(Context context, AttributeSet attrs) {
	super(context, attrs);
}

public InteractiveScrollView(Context context) {
	super(context);
}

@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
	
	View view = (View) getChildAt(getChildCount()-1);
	
	int diff = (view.getBottom()-(getHeight()+getScrollY()));
	
	if( diff == 0 ){
		// validate if we have a listener
		if( onBottomReachedListener != null ){
			// trigger the listener
			onBottomReachedListener.onBottomReached();
		}
	}

	super.onScrollChanged(l, t, oldl, oldt);
}


public OnBottomReachedListener getOnBottomReachedListener() {
	return onBottomReachedListener;
}

public void setOnBottomReachedListener(
		OnBottomReachedListener onBottomReachedListener) {
	this.onBottomReachedListener = onBottomReachedListener;
}

public interface OnBottomReachedListener{
	public void onBottomReached();
}

}

0

@dbCooper
Poprawna odpowiedź, ale nie dość precyzyjna albo Ja powinienem to inaczej odebrać. Poczytałem na ten temat i mam:

<com.your.packagename.InteractiveScrollView 

Mam jeszcze jakiś błąd ale nie związany z tą linijką także będę walczył ! W razie co napisze.
Dzięki:P

1 użytkowników online, w tym zalogowanych: 0, gości: 1