2012-01-20 3 views
6

처음 질문이지만 올바르게 묻습니다.findViewById (int)는 Android 3.1의 다른 특정 버튼에서 null을 반환합니다.

제목이 하나의 버튼에만 표시되며 android 3.1에서만 findViewById (int)는 null을 반환합니다. Android 2.2에서 테스트 중이며 다른 모든 버튼은 Android 버전에서 모두 볼 수 있습니다. 이 특정 라인 이전에 버튼을 찾습니다.

public void onCreate(Bundle savedInstanceState){ 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 
Button buttonInfo = (Button)findViewById(R.id.buttonInfo);//fine 
buttonInfo.setOnClickListener(this); 
... 
Button buttonCallOpScreen = (Button)findViewById(R.id.buttonCallOpScreen);//always returns null in android 3.1 
... 
Button buttonTakePicture = (Button)findViewById(R.id.buttonTakePictureMain);//fine 
buttonTakePicture.setOnClickListener(this); 
} 

main.xml :

(. 내가 px를 사용하지 않도록 알고 있지만,이 경우에 좋은, 그래서 그것이 단지 내 장치에서 작동된다)

<Button 
android:id="@+id/buttonInfo" 
android:text="" 
android:layout_width="332px" 
android:layout_height="100px" 
android:background="@drawable/btn_team" /> 
... 
<Button 
android:id="@+id/buttonCallOpScreen" 
android:text="" 
android:layout_width="332px" 
android:layout_height="100px" 
android:background="@drawable/btn_operator" /> 
... 
<Button 
android:id="@+id/buttonTakePictureMain" 
android:text="" 
android:layout_width="80px" 
android:layout_height="80px" 
android:background="@drawable/btn_take_picture" 
android:layout_gravity="bottom|left" /> 

어떤 도움이라도 감사 할 것입니다, 지금까지 감사드립니다.


답 : 그것은 추한보다 더 많은 것으로 밝혀졌다

. 이 프로젝트에서 일하는 사람이 여러 명 있기 때문에 layout-normal/main.xml에서 이름이 변경된 것 같습니다. 3.1 이전의 Android 버전은 layout/main.xml을로드하는 것처럼 보이지만 최신 버전은 layout-normal/main.xml을 사용합니다. 그 버튼의 ID가 다른 경우, 이해할 수있는 것이기 때문에, findViewById (int)는 null를 돌려 줄 필요가 있습니다.

의견을 보내 주셔서 감사 드리며 죄송합니다. 나는 100 개 미만의 명성을 할 것처럼

, 나는 누군가가 내가 그것을 받아들이는이 답변을 게시 할 수 있다면, 그것을 닫습니다 덕분에 내 자신의 질문에 대답 할 수 없다.

+0

프로젝트를 지우려고 했습니까? –

+0

프로젝트를 선택하고 프로젝트 메뉴 모음에서 프로젝트 메뉴 모음 – Pratik

+0

에서 프로젝트를 정리하고 다시 작성하십시오. 이미 성공했습니다. 성공하지 못했습니다. – Martin

답변

0

다음 질문에 대한 답변이 발견되었습니다. 세부 사항은 다음과 같습니다

하는 레이아웃 - 일반/main.xml에있는 이름을 변경 한 듯의이 프로젝트 하나의 작업을 여러 사람이 있기 때문에. 3.1 이전의 Android 버전은 layout/main.xml을로드하는 것처럼 보이지만 최신 레이아웃은 layout-normal/main.xml을 사용합니다. 그리고 그 버튼의 ID가 다른 경우 보다 이해가 많으므로 findViewById (int)는 return null이되어야합니다.