2011-01-09 5 views
1

J'ai un LinearLayout que je veux gonfler dans mon SectionedAdapter comme en-tête. LinearLayout ont un ImageView et un TextView. J'ai essayé cela, mais cela ne fonctionne pas ...SectionedAdapter (déplier la disposition)

SectionedAdapter adapter = new SectionedAdapter() { 
protected View getHeaderView(String caption, int index, View convertView, ViewGroup parent) { 
TextView result=(TextView)convertView; 

if (convertView == null) { 
result = (TextView) getLayoutInflater().inflate(R.layout.my_main_layout, null).findViewById(R.id.label); 
} 
result.setText(caption); 

return(result); 
} 
}; 

Je reçois

01-09 21:23:02.336: ERROR/AndroidRuntime(308): FATAL EXCEPTION: main 
01-09 21:23:02.336: ERROR/AndroidRuntime(308): java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.widget.ListView.setupChild(ListView.java:1761) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.widget.ListView.makeAndAddView(ListView.java:1730) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.widget.ListView.fillDown(ListView.java:652) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.widget.ListView.fillFromTop(ListView.java:709) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.widget.ListView.layoutChildren(ListView.java:1580) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.widget.AbsListView.onLayout(AbsListView.java:1147) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.view.View.layout(View.java:7035) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1249) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1125) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.widget.LinearLayout.onLayout(LinearLayout.java:1042) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.view.View.layout(View.java:7035) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.widget.FrameLayout.onLayout(FrameLayout.java:333) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.view.View.layout(View.java:7035) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1249) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1125) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.widget.LinearLayout.onLayout(LinearLayout.java:1042) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.view.View.layout(View.java:7035) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1249) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1125) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.widget.LinearLayout.onLayout(LinearLayout.java:1042) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.view.View.layout(View.java:7035) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.widget.FrameLayout.onLayout(FrameLayout.java:333) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.view.View.layout(View.java:7035) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.widget.FrameLayout.onLayout(FrameLayout.java:333) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.view.View.layout(View.java:7035) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.view.ViewRoot.performTraversals(ViewRoot.java:1045) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1727) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.os.Handler.dispatchMessage(Handler.java:99) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.os.Looper.loop(Looper.java:123) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at java.lang.reflect.Method.invokeNative(Native Method) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at java.lang.reflect.Method.invoke(Method.java:521) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
01-09 21:23:02.336: ERROR/AndroidRuntime(308):  at dalvik.system.NativeStart.main(Native Method) 

Ofcourse, coulée (TextView) est un problème ..?

Répondre

1

L'erreur signifie que vous essayez de jeter quelque chose d'un casting est quelque chose qui ressemble à ceci:

(SomeClass) SomeFunctionThatReturnsAnObject(); 

Si les fonctions retourne un objet qui ne sont pas de la bonne classe, vous obtiendrez cette erreur. Je ne sais pas quelle ligne a renvoyé l'erreur, et quels sont les numéros de téléphone dans votre code, mais vous avez un appel "findViewById". Cela retournera une vue. Si cette vue est une TextView, vous pouvez la convertir en (TextView), mais si ce n'est pas le cas, vous ne pouvez pas.

+1

Je comprends que dit ci-dessus (casting) mais ma vue (étiquette - R.id.label) est à l'intérieur R.layout.my_main_layout et c'est TextView - et je reçois toujours une erreur? L'erreur est bien sûr sur cette ligne "... .findViewById (.." – svenkapudija

0

Cela devrait fonctionner: (TextView) ((LinearLayout) getLayoutInflater(). Gonfler (R.layout.my_main_layout, null)). FindViewById (R.id.label);

+0

Toujours une erreur .. * J'ai mis à jour le journal ... – svenkapudija

Questions connexes