2012-01-21 51 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

你應該真正閱讀你的進口。您正在使用錯誤的類佈局參數。你應該使用:

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而不需要在其上設置佈局參數。

在LayoutParam中爲TextView使用android.widget.AbsListView.LayoutParams代替LayoutParams中的LayoutParams。

+0

是的,你可以做到這一點。 http://developer.android.com/reference/android/view/View.html#setLayoutParams(android.view.ViewGroup.LayoutParams) – JoxTraex

+0

是的,你可以但如果你正在設置佈局參數,你需要設置列表視圖,而不是其他佈局,請參閱我編輯的答案。 – jeet

+0

它是多餘的,因爲您可以將視圖添加到ListView,那麼它應該自動配置視圖。我認爲... – JoxTraex

0

當你在設置和使用新的layoutparams時,你有一個ClassCastException(不記得確切的)錯誤。

因此,使用

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

是它的問題?

哦,JoxTraex是對的,你也使用錯誤的類。所以,你有分鐘。 2錯誤在這裏。