2012-01-25 6 views
-1
public class Database extends Activity { 

private TextView tvInfo = (TextView)findViewById(R.id.tvInfo); 
private Button btnInfo = (Button)findViewById(R.id.btnInfo); 

안녕하세요,이 사람은 아마도 자바의 초보자 오류 일뿐입니다. 왜이 사람이 나를 NPE에 던집니까? 나는 그 변수들을 선언하고 있으며 그것은 나에게 NPE를 준다.Android java NullPointerException

+0

NPE가 어떤 행에 있습니까?! –

+0

해결되었습니다. 감사합니다. – silentw

답변

1

당신은 시나리오 위

private TextView tvInfo = null; 
private Button btnInfo = null; 
@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.configuration); 
      tvInfo = (TextView)findViewById(R.id.tvInfo); 
      btnInfo = (Button)findViewById(R.id.btnInfo); 
      ........ 
    } 

시도, 당신은 NullPointerException을받지 않습니다 아래처럼 코딩 할 필요가있다.

+0

그래, 그게 내가 만든거야. 빠른 답변을 보내 주셔서 감사합니다. – silentw

+1

당신은 다른 사람뿐만 아니라 당신에게 유용 할 수 있도록 대답을 받아 들여야합니다. – Lucifer

0

당신은 사전에 setContentView(R.layout.main)로 전화 했습니까? 정확히 무엇이 호출되어야하는지 잘 모르겠지만 리소스가 설정되지 않은 것 같습니다.

+0

고마워요. 제 문제였습니다. 이전에는 자바 경험이 없었습니다. – silentw

+0

해결 된 문제에 대한 추가 답변을 막기 위해 질문에 답변하십시오;) – sschrass

0

당신은 그것이 가능하지 않은 경우, 당신은보기를 찾을 수 없습니다

+0

고마워, 그건 내 문제 였어! 멍청한 초보자 실수 : – silentw

+0

환영합니다. 당신이 유용하다고 생각하는 대답을 받아 들여야한다는 것을 기억하십시오. 대답 한 사람이 점수 (10)를 얻습니다. (2) – nwaltham

+0

6 분 남음 : – silentw

1

된 setContentView 호출 한 후에서 onCreate() 내부의 변수를 초기화해야한다. 이것은 다음과 같이 코드를 이동해야하는 이유입니다 : 활동의

tvInfo = (TextView)findViewById(R.id.tvInfo); 
btnInfo = (Button)findViewById(R.id.btnInfo); 
+0

해결되었습니다. – silentw

0

재정에서 onCreate 방법과 된 setContentView를 통해 다음 활동의 레이아웃을 설정하십시오에서 onCreate 방법 내부

private TextView tvInfo; 
private Button btnInfo; 

을, 당신이 할 TextView와 Button을 찾아보십시오.

관련 문제