2012-02-01 4 views
0

저는 몇 년 동안 웹 앱을 개발해 왔으며,이 책을 사용하여 안드로이드 개발을 시작하기로 결정했습니다 : wrox의 안드로이드 애플리케이션 개발 시작.다른 활동에서 활동 레이아웃을 참조하십시오.

어떤 시점에서 책은 "의도에서 결과 반환"이라는 제목으로 의도로부터 결과를 얻는 방법을 설명합니다.

  1. 이 책은 몇 가지 새로운 컨트롤을 추가하여 main.xml에 레이아웃 파일을 변경하는 방법에 대해 설명합니다

    는 단계입니다. 이 책은 두 번째 (activity2에)입니다 활동을 변경하는 방법을 설명합니다
  2. ,이 활동이 btn_OK이의 레이아웃에 정의 된 이후 ​Button btn = (Button) findViewById(R.id.btn_OK); 를 호출하여 다른 활동의 레이아웃을 참조해야한다고 말한다 주 활동 (및 Activity2 중 하나가 아니라 main.xml에 있음) 메서드는 null을 반환합니다.

공식 문서는 설명

public View findViewById (int id) 
Since: API Level 1 

onCreate(Bundle)에서 처리 된 XML에서 id 속성으로 식별 된 뷰를 찾습니다.

여기에 뭔가가 누락되었거나이 책이 잘못 되었습니까?

답변

0

활동에서 findViewById()를 사용하면 onCreate()의 setContentView()에서 사용 된 레이아웃 xml 파일을 검색합니다.

두 활동이 다른 layout.xml 파일을 사용하는 경우 해당 파일 내의 버튼은 동일한 ID를 가질 수 있으며 findViewById()에 의해 혼동되지 않습니다.

​Button btn = Activity1.btn; 

참고 : activity1에

public static Button btn; 
void onCreate(...) { 
    btn = (Button) findViewById(R.id.btn_OK); 
} 
activity2에에서

에서

0

이이 BTN을 파괴 할 것 같은) (activity1.finish 호출하지 않는, activity2에로 이동 의도를 사용할 때,

관련 문제