2011-09-15 10 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)"を取り出したら、それはうまく動作します、なぜですか?ヘッダービューをlistviewに追加するとアプリがクラッシュするのはなぜですか?

+1

我々はすべてのエラーログを見ていないので、それがクラッシュし、なぜ私たちが伝えることはできません。質問をより明確にするために投稿してください。 – Egor

答えて

3

addHeaderViewをやってみてください。そうしないと、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ディメンションが設定されていないためだと思います。 setAdapter前に呼び出さなければなりません。この

TextView t = new TextView(this); 
t.setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.WRAP_CONTENT, 
              LayoutParams.FILL_PARENT)); 
t.setText("asdfadsfdfsa"); 
関連する問題