2011-09-15 6 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"); 
관련 문제