2011-09-15 35 views
-1
super.onCreate(savedInstanceState); 
    ListView lv = new ListView(this); 
    String[] meals = getResources().getStringArray(R.array.meals); 
    lv.setAdapter(new ArrayAdapter<String>(this, R.layout.list_item, 
      meals)); 
    lv.setTextFilterEnabled(true); 
    college = getIntent().getExtras().getString("COLLEGE"); 
    setTitle(college); 
    TextView t = new TextView(this); 
    t.setText("asdfadsfdfsa"); 
    lv.addHeaderView(t); 
    setContentView(lv); 

運行這會導致程序崩潰。如果我拿出「lv.addHeaderView(t)」,它運行良好,爲什麼?爲什麼向列表視圖添加標題視圖會導致應用程序崩潰?

+1

我們不知道爲什麼它會崩潰,因爲我們還沒有看到任何錯誤日誌。請張貼它們以使您的問題更清楚。 – Egor

回答

3

addHeaderView應該setAdapter之前被調用。否則,你會得到一個IllegalStateException。

參考http://developer.android.com/reference/android/widget/ListView.html#addHeaderView%28android.view.View%29

你的新代碼應該是:

super.onCreate(savedInstanceState); 
ListView lv = new ListView(this); 
String[] meals = getResources().getStringArray(R.array.meals); 
TextView t = new TextView(this); 
t.setText("asdfadsfdfsa"); 
lv.addHeaderView(t); 
lv.setAdapter(new ArrayAdapter<String>(this, R.layout.list_item, meals)); 
lv.setTextFilterEnabled(true); 
college = getIntent().getExtras().getString("COLLEGE"); 
setTitle(college); 
setContentView(lv); 

0

我認爲這是因爲你的textview尺寸沒有設置。 嘗試這樣做

TextView t = new TextView(this); 
t.setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.WRAP_CONTENT, 
              LayoutParams.FILL_PARENT)); 
t.setText("asdfadsfdfsa"); 
相關問題