2012-01-21 12 views
0

私はこのコードでヘッダを使用しようとしました:標準的なメソッドを使用してListViewにヘッダーを使用する方法は?

String[] strings=new String[]{"1", "2", "3"}; 
ArrayAdapter adapter=new ArrayAdapter(this, android.R.layout.simple_list_item_1, 
     strings); 
ListView view=(ListView)findViewById(R.id.listView1); 

TextView v=new TextView(this); 
v.setTextColor(Color.WHITE); 
v.setText("122224"); 
v.setTextSize(15); 
v.setId(54); 
v.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
view.addHeaderView(v); 
view.setAdapter(adapter); 

しかし、それは例外では動作し、押しつぶすしません:

01-21 16:52:14.025: E/AndroidRuntime(16625): Uncaught handler: thread main exiting due to uncaught exception 
01-21 16:52:14.035: E/AndroidRuntime(16625): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nda.android/com.nda.android.AndroidActivity}: java.lang.ClassCastException: android.view.WindowManager$LayoutParams 
01-21 16:52:14.035: E/AndroidRuntime(16625): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496) 
01-21 16:52:14.035: E/AndroidRuntime(16625): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 
01-21 16:52:14.035: E/AndroidRuntime(16625): at android.app.ActivityThread.access$2200(ActivityThread.java:119) 
01-21 16:52:14.035: E/AndroidRuntime(16625): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) 
01-21 16:52:14.035: E/AndroidRuntime(16625): at android.os.Handler.dispatchMessage(Handler.java:99) 
01-21 16:52:14.035: E/AndroidRuntime(16625): at android.os.Looper.loop(Looper.java:123) 
01-21 16:52:14.035: E/AndroidRuntime(16625): at android.app.ActivityThread.main(ActivityThread.java:4363) 
01-21 16:52:14.035: E/AndroidRuntime(16625): at java.lang.reflect.Method.invokeNative(Native Method) 
01-21 16:52:14.035: E/AndroidRuntime(16625): at java.lang.reflect.Method.invoke(Method.java:521) 
01-21 16:52:14.035: E/AndroidRuntime(16625): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:877) 
01-21 16:52:14.035: E/AndroidRuntime(16625): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:635) 
01-21 16:52:14.035: E/AndroidRuntime(16625): at dalvik.system.NativeStart.main(Native Method) 
01-21 16:52:14.035: E/AndroidRuntime(16625): Caused by: java.lang.ClassCastException: android.view.WindowManager$LayoutParams 
01-21 16:52:14.035: E/AndroidRuntime(16625): at android.widget.ListView.clearRecycledState(ListView.java:492) 
01-21 16:52:14.035: E/AndroidRuntime(16625): at android.widget.ListView.resetList(ListView.java:478) 
01-21 16:52:14.035: E/AndroidRuntime(16625): at android.widget.ListView.setAdapter(ListView.java:420) 
01-21 16:52:14.035: E/AndroidRuntime(16625): at com.nda.android.AndroidActivity.onCreate(AndroidActivity.java:98) 
01-21 16:52:14.035: E/AndroidRuntime(16625): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
01-21 16:52:14.035: E/AndroidRuntime(16625): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) 
01-21 16:52:14.035: E/AndroidRuntime(16625): ... 11 more 

してください、私の例を与えます。とにかく、助けてくれて、ありがとう。

+1

98行は何ですか? – JoxTraex

答えて

0

あなたは本当にあなたの輸入品を読むべきです。間違ったクラスレイアウトパラメータを使用しています。あなたは使用する必要があります:

今あなたが(WRONG)を使用しているのようhttp://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html

を:私たちはあなたのログを見ると

http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html

これは明白です

Caused by: java.lang.ClassCastException: android.view.WindowManager$LayoutParams 

APIを使用する前に、を理解する何それあなたがそれを使用する前にを必要とするこれらの問題を避けるでしょう。

-1

ビューグループのレイアウトパラメータを設定することはできません。したがって、レイアウトパラメータを設定せずにaddHeaderViewだけを設定することはできません。

TextViewのLayoutParamのLayoutParamsではなく、android.widget.AbsListView.LayoutParamsを使用します。

+0

はい、これを行うことができます。 http://developer.android.com/reference/android/view/View.html#setLayoutParams(android.view.ViewGroup.LayoutParams) – JoxTraex

+0

はい、レイアウトのパラメータを設定している場合は、これをリストビューで設定する必要があります他のレイアウトではなく、私の編集された答えを見てください。 – jeet

+0

ListViewにビューを追加するだけで済むので、ビューが自動的に構成されるはずです。おもう... – JoxTraex

0

新しいレイアウトパラメータを設定して使用しているときは、ClassCastException(正確には覚えていない)エラーがあります。

ので、それは問題

LayoutParams params = v.getLayoutParams(); 
params.width=LayoutParams.FILL_PARENT; 
params.height=LayoutParams.WRAP_CONTENT; 
allForm.setLayoutParams(params); 

あるでしょうか?

ああ、JoxTraxは間違ったクラスを使用しています。だから、あなたは分を持っています。ここに2つのエラーがあります。

関連する問題