2012-07-16 5 views
0

사람이 HeadViewView를 안드로이드의 ListView에 제대로 추가하는 방법을 알고 있습니까? 이것은 내가 무엇을 가지고 :안드로이드 - ListView에 HeaderView를 추가하면 ClassCastException이 throw됩니다.

LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
View inflatedView = inflater.inflate(R.layout.adapter_post_note, commentsListView, false); 

그 I 설치 이미지 뷰와 몇 텍스트 뷰의 이미 이미지 리소스 및/또는 텍스트를 설정하여 adapter_post_note 레이아웃의 일부 그 이후. 내가 어댑터가 BaseAdapter를 확장하는 사용자 정의 어댑터입니다

commentsListView.addHeaderView(inflatedView); 
commentsAdapter = new CommentsAdapter(this, post.getComments(), post); 
commentsListView.setAdapter(commentsAdapter); 

HeaderView을 추가하고 내가 맥락에서 목록보기 채우는 목록을 통과하고, 어떤 이유로 "포스트"하지만 나던 곳 여기에있다 문제. 여기

내가 내가 ListView.LayoutParams, FrameLayout.LayoutParams, AbsListView.LayoutParams에 inflatedView의 레이아웃 PARAMS 설정을 시도

07-16 12:39:58.858: E/AndroidRuntime(1562): FATAL EXCEPTION: main 
07-16 12:39:58.858: E/AndroidRuntime(1562): java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams 
07-16 12:39:58.858: E/AndroidRuntime(1562):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:360) 
07-16 12:39:58.858: E/AndroidRuntime(1562):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:309) 
07-16 12:39:58.858: E/AndroidRuntime(1562):  at android.view.View.measure(View.java:8372) 
07-16 12:39:58.858: E/AndroidRuntime(1562):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
07-16 12:39:58.858: E/AndroidRuntime(1562):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 
07-16 12:39:58.858: E/AndroidRuntime(1562):  at android.view.View.measure(View.java:8372) 
07-16 12:39:58.858: E/AndroidRuntime(1562):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
07-16 12:39:58.858: E/AndroidRuntime(1562):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 
07-16 12:39:58.858: E/AndroidRuntime(1562):  at android.view.View.measure(View.java:8372) 
07-16 12:39:58.858: E/AndroidRuntime(1562):  at android.view.ViewRoot.performTraversals(ViewRoot.java:844) 
07-16 12:39:58.858: E/AndroidRuntime(1562):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1868) 
07-16 12:39:58.858: E/AndroidRuntime(1562):  at android.os.Handler.dispatchMessage(Handler.java:99) 
07-16 12:39:58.858: E/AndroidRuntime(1562):  at android.os.Looper.loop(Looper.java:130) 
07-16 12:39:58.858: E/AndroidRuntime(1562):  at android.app.ActivityThread.main(ActivityThread.java:3701) 
07-16 12:39:58.858: E/AndroidRuntime(1562):  at java.lang.reflect.Method.invokeNative(Native Method) 
07-16 12:39:58.858: E/AndroidRuntime(1562):  at java.lang.reflect.Method.invoke(Method.java:507) 
07-16 12:39:58.858: E/AndroidRuntime(1562):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842) 
07-16 12:39:58.858: E/AndroidRuntime(1562):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 
07-16 12:39:58.858: E/AndroidRuntime(1562):  at dalvik.system.NativeStart.main(Native Method) 

점점 오전 오류입니다, 아무것도 작동하지 않습니다. 그것은 마치 머리글로 inflatedView를 추가하는 것처럼 보이지만, 나중에 화면을 무효화하려고 시도하면 ListView 자식 상태를 재활용하려고 시도하지만 실패 할뿐입니다. 생각?

또한, 나는 시도 한가지 더

View.inflate(this, R.layout.adapter_post_note, null); 

하지만 여전히 나던 일

답변

1

null로 부모보기를 설정하고 당신은 갈 수 있습니다. 뷰의 부모를 참조 할 필요가 없습니다. 그냥 부 풀려서 메서드에 전달하십시오.

+0

감사합니다. 그 일을, 나는 또한 문제가 될 수있는 코드의 다른 라인을 삭제하지만, 나는 그것을 해결하고 안되는 줄을 고정 답변을 갈거야. –