2011-10-06 5 views
0

충돌되는이 내 코드입니다 :안드로이드 : 응용 프로그램이

public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    TextView editTextDay = (TextView)findViewById(R.id.editTextDay); 
    editTextDay.setVisibility(8); //GONE 
    setContentView(R.layout.main); 
} 

라인없이 "editTextDay.setVisibility (8);"응용 프로그램이 충돌하지 않습니다.

무엇이 잘못 되었습니까?

+0

아무것도를하지만, 내가 접근 방식에 동의하는 대신 8 –

+0

@Laurent '의 상수 View.GONE를 사용해야 하지만, 어떤 이유로 이클립스는 GONE과 VISIBLE을 인식하지 못하기 때문에 대신 0과 8을 사용해야합니다. – Belgi

+0

@Laurent : 저는 그것이 같다고 생각합니다. GONE은 int 타입의 상수이고, 그의 값은 8입니다. 이것을 참조하십시오 : http://developer.android.com/reference/android/view/View.html#GONE Belgi : 시도 EditText.GONE; – Houcine

답변

5

: findViewById() 메서드를 호출하기 전에 콘텐츠 레이아웃을 설정해야합니다. 그 이유는 null입니다. 따라서 코드는 다음과 같이 작동합니다.

public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    TextView editTextDay = (TextView)findViewById(R.id.editTextDay); 
    editTextDay.setVisibility(8); //GONE 

} 
4

setContentView(R.layout.main);super.onCreate(savedInstanceState); . 다음에 이동하십시오. 현재 귀하의 텍스트 뷰가 예외이므로 예외가 발생합니다. 먼저보기를 설정 한 다음 findViewById 메소드를 사용해야합니다.

4

super 호출 바로 아래에 setContentView를 넣습니다. 당신은 콘텐츠보기를 설정하기 전에 뷰를 액세스 할 수 없습니다 직접 질문과 관련된

public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    TextView editTextDay = (TextView)findViewById(R.id.editTextDay); 
    editTextDay.setVisibility(View.GONE); //GONE 
} 
관련 문제