안녕하세요.


자바소스로 UI를 짜고있는데요,

스크롤뷰가 자식 뷰를 하나만 가질 수 있어서 

항상 스크롤뷰와 레이아웃을 하나 더 따로 만들어야 하는게 불편해서

자바소스로 커스텀 클래스를 만들었습니다.


구조는 ScrollView 안에 LinearLayout 객체 변수를 가지고 있고,

LinearLayout에 직접 addVIew 시키도록 메서드를 추가 해서

이 클래스의 객체를 만들어 사용하려고 했더니 NullPointerException 이 나오는데요,

계속 보고 있는데 문제점을 못찾겠네요 ㅠㅠ

제가 뭘 잘못해서 그런것인지, 원래 안되는것인지 조언 구합니다.



  public class CustomScrollView extends ScrollView {

	private LinearLayout mContainer;

	public CustomScrollView(final Context context) {
		super(context);
		setOverScrollMode(OVER_SCROLL_NEVER);
		setFadingEdgeLength(0);

		mContainer = new LinearLayout(context);
		mContainer.setOrientation(LinearLayout.VERTICAL);

		ViewGroup.LayoutParams p = new ViewGroup.LayoutParams(
				LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
		mContainer.setLayoutParams(p);

		addView(mContainer);
	}

	public void add(final View child){
		mContainer.addView(child);
	}


소스를 이렇게 해 두고, add 메서드를 호출했습니다.

그러니 NullPointerException 이 떨어졌습니다.


로그도 첨부합니다.

도와주세요!! ㅜㅜ


11-28 15:07:15.300: E/AndroidRuntime(8246): FATAL EXCEPTION: main

11-28 15:07:15.300: E/AndroidRuntime(8246): java.lang.NullPointerException

11-28 15:07:15.300: E/AndroidRuntime(8246): at android.view.ViewGroup.resetResolvedTextDirection(ViewGroup.java:5151)

11-28 15:07:15.300: E/AndroidRuntime(8246): at android.view.ViewGroup.resetResolvedTextDirection(ViewGroup.java:5152)

11-28 15:07:15.300: E/AndroidRuntime(8246): at android.view.View.resolveLayoutDirectionIfNeeded(View.java:9736)

11-28 15:07:15.300: E/AndroidRuntime(8246): at android.view.View.onAttachedToWindow(View.java:9714)

11-28 15:07:15.300: E/AndroidRuntime(8246): at android.view.View.dispatchAttachedToWindow(View.java:9958)

11-28 15:07:15.300: E/AndroidRuntime(8246): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2198)

11-28 15:07:15.300: E/AndroidRuntime(8246): at android.view.ViewGroup.addViewInner(ViewGroup.java:3376)

11-28 15:07:15.300: E/AndroidRuntime(8246): at android.view.ViewGroup.addView(ViewGroup.java:3208)

11-28 15:07:15.300: E/AndroidRuntime(8246): at android.view.ViewGroup.addView(ViewGroup.java:3165)

11-28 15:07:15.300: E/AndroidRuntime(8246): at android.view.ViewGroup.addView(ViewGroup.java:3145)

11-28 15:07:15.300: E/AndroidRuntime(8246): at ir.example.main.MainActivity$1.handleMessage(MainActivity.java:112)

11-28 15:07:15.300: E/AndroidRuntime(8246): at android.os.Handler.dispatchMessage(Handler.java:99)

11-28 15:07:15.300: E/AndroidRuntime(8246): at android.os.Looper.loop(Looper.java:137)

11-28 15:07:15.300: E/AndroidRuntime(8246): at android.app.ActivityThread.main(ActivityThread.java:4507)

11-28 15:07:15.300: E/AndroidRuntime(8246): at java.lang.reflect.Method.invokeNative(Native Method)

11-28 15:07:15.300: E/AndroidRuntime(8246): at java.lang.reflect.Method.invoke(Method.java:511)

11-28 15:07:15.300: E/AndroidRuntime(8246): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)

11-28 15:07:15.300: E/AndroidRuntime(8246): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)

11-28 15:07:15.300: E/AndroidRuntime(8246): at dalvik.system.NativeStart.main(Native Method)





(MainActivity.java:112  로그에서 가리키는 여기 112 라인은

제가 만든 CustomScrollView 를 사용하는 클래스의 생성자입니다....ㅜㅜ

그것만으로는 찾을수가 없더라구요...