2011-09-16 7 views
3

다음 코드를 실행하려고하면 오류가 발생합니다. 에뮬레이터에서이 오류 메시지를 표시 한 다음 앱 강제 종료 : 응용 프로그램이 예기치 않게 중지되었습니다. 무엇이 잘못 되었나요?Android : Layout.addView()가 작동하지 않습니다.

import edu.chl.dat255.bluebanana.R; 
import android.app.Activity; 
import android.os.Bundle; 
import android.widget.LinearLayout; 
import android.widget.TextView; 

public class ProMan extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     LinearLayout layout = (LinearLayout) findViewById(R.layout.main); 

     TextView t = new TextView(getApplicationContext()); 
     t.setText("Hello world"); 
     layout.addView(t); 
    } 
} 
+0

전체 예외 오류 게시하시기 바랍니다. 응용 프로그램이 예기치 않게 중지되었습니다.은 거의 모든 경우에 사용되는 일반적인 구문입니다. – DeeV

+0

나는 팝업 메시지 이외의 다른 오류 메시지를 찾는 방법을 모른다. 콘솔에 아무것도 쓰여지지 않습니다. "Blue Bananana (process edu.chl.dat255.bluebanana) 응용 프로그램이 예기치 않게 중지되었습니다. 다시 시도하십시오." – Incinerator

+0

LogCat에서 자세한 오류 메시지를 사용할 수 있습니다. Eclipse에 있다면 오른쪽 상단에있는 "DDMS"버튼을 클릭하여 볼 수 있습니다 (화살표를 먼저 클릭해야 할 수도 있음). – DeeV

답변

7
LinearLayout layout = (LinearLayout) findViewById(R.id.mainLayout); 

In your xml file main xml layout android:id="@+id/mainLayout" 
+0

고마워요! 이것은 문제를 해결했습니다! =) – Incinerator

0

'TextView t'에 대한 레이아웃 정보를 제공해야합니다. 레이아웃 너비 및 레이아웃 높이를 제공해야합니다. 아래 코드를 참조하십시오.

LinearLayout.LayoutParams params = 
    new LinearLayout.LayoutParams( 
     ViewGroup.LayoutParams.WRAP_CONTENT, 
     ViewGroup.LayoutParams.WRAP_CONTENT, 0.0F); 
t.setLayoutParams(tvParams); 

layout.addView(t); 
2

당신은 (대신 findViewById를의

로 R.layout 그것을 참조 다음

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/mainLayout"> 

처럼 main.xml에있는 루트의 LinearLayout에 대한 ID를 설정해야합니다. 본관);

관련 문제