2014-02-12 2 views
-5

무엇이 잘못 되었나요? 등록 버튼을 클릭하면 앱이 중지됩니다. 프로젝트 파일 : https://github.com/JonasFranzDEV/LaMammaAndroid : Null 포인터 예외 setContentView

+0

체크 ID 및 g 대신 여기에 코드 –

+0

후 로그 고양이와 코드 – kId

+0

를 게시 : ClassCastException 발생할 수 있습니다 OnClickListener를로 타입 캐스팅 버튼으로 버튼 모든 프로젝트의 ithub 링크는 문제를 일으킬 수있는 게시 코드를 시도합니다 (예 : 등록 버튼의 onClickListener 코드). –

답변

2

널이 되라. 당신의 다음 코드 뷰에서

두 개의 서로 다른 레이아웃과에서 만 현재 레이아웃에서보기는 초기화되고 다른 사람은 NullPointerException의 원인이 null이됩니다 : 당신이 registerForm에 대한 클릭 리스너를 설정하여 다음과 같은 코드 또한

login = (Button) findViewById(R.id.button1); 
register = (Button) findViewById(R.id.button2); 
r_username = (EditText) findViewById(R.id.username); 
r_password = (EditText) findViewById(R.id.password); 
r_email = (EditText) findViewById(R.id.email); 
username = (EditText) findViewById(R.id.editText1); 
password = (EditText) findViewById(R.id.editText2); 
registerForm = (Button) findViewById(R.id.register); 

당신의 버튼의

register.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     setContentView(R.layout.register); 
     registerForm.setOnClickListener((OnClickListener) register); 
    } 
}); 
1

확인하고 필드는 activity_main.xml 존재 여부를 확인합니다.

login = (Button) findViewById(R.id.button1); 
register = (Button) findViewById(R.id.button2); 
r_username = (EditText) findViewById(R.id.username); 
r_password = (EditText) findViewById(R.id.password); 
r_email = (EditText) findViewById(R.id.email); 
username = (EditText) findViewById(R.id.editText1); 
password = (EditText) findViewById(R.id.editText2); 
registerForm = (Button) findViewById(R.id.register); 
1

귀하의 activity_main 레이아웃 ID register으로 볼 수없는 당신의 registerformnull 남아있다. 뷰 구조가 실제로 제 setContentView() 그 후 뷰, 즉 (다른 setContentView()을 갖는 방법에 의해 좋은 생각되지 않음)가있을 때

findViewById()으로 register 뷰의 참조를 구합니다.

또한 github 프로젝트에 대한 링크가 아닌 관련 코드 및 예외 stacktrace를 질문에 포함해야합니다.

당신의 버튼 Intiallize
0

, 당신의 활동에 EditTexts .. 이런 식으로

: - 당신은보기 계층 구조가 실제로 다른 뷰의 인스턴스를 그것은 것입니다 얻을 findViewById()를 호출 할 때로드가 필요

login = (Button) findViewById(R.id.button1); 
register = (Button) findViewById(R.id.button2); 
r_username = (EditText) findViewById(R.id.username); 
r_password = (EditText) findViewById(R.id.password); 
r_email = (EditText) findViewById(R.id.email); 
username = (EditText) findViewById(R.id.editText1); 
password = (EditText) findViewById(R.id.editText2); 
registerForm = (Button) findViewById(R.id.register);