2017-10-26 4 views
-3

내가 뭘 잘못하고 있는지 알 수 없습니다. 뷰 R.id.etPassword이 레이아웃에 있는지오류가 발생했습니다 : null 객체 참조에서 가상 메소드 호출 시도 ...

EditText pass; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_prva_prijava); 

     pass = (EditText) findViewById(R.id.etPassword); 

     FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.floatingActionButton); 
     viewPager = (ViewPager) this.findViewById(R.id.pager); 
     fab.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       if(i==0){ 
        if (pass.getText().toString().isEmpty()) { // <-- this is the 51 line 
         Snackbar.make(view, "Niste vnesli aktivacijske kode.", Snackbar.LENGTH_SHORT). 
           setAction("Action", null).show(); 
        } 
        else { 
         i=1; 
         viewPager.setCurrentItem(i); 
        } 
       } 
       else if(i>0) { 
        i++; 
        viewPager.setCurrentItem(i); 

        if(i==3){ 
         Intent intent; 
         intent = new Intent(getApplicationContext(),MainActivity.class); 
         startActivity(intent); 
         finish(); 
        } 
        //Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
        //  .setAction("Action", null).show(); 
       } 
      } 
     }); 
+0

당신 글고의 referance에 그 실수, 그것은 "etPassword" – himel

+0

의 모든 ID를 확인 null입니다. 그러나 같은 오류가 여전히 존재합니다. –

+0

HIMEL을 설정하는 이유 XML – Fisheroid

답변

-1

확인 : 여기

java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference
at si.skorajporocena.skorajporocena.PrvaPrijavaActivity$1.onClick(PrvaPrijavaActivity.java:51)

는 코드입니다.

+0

레이아웃에 있습니다. – Fisheroid

-1

pass 변수가 null입니다. 가장 큰 원인은 레이아웃 오류입니다. R.id.etPassword

+0

레이아웃에 문제가 없습니다. – Fisheroid

-1

문제가 해결되었습니다. 변수 pass이 필요한 if 문 외부에 pass = (EditText) findViewById(R.id.etPassword);이 있다는 문제가있었습니다.

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.floatingActionButton); 
     viewPager = (ViewPager) this.findViewById(R.id.pager); 
     fab.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       if(i==0){ 
        pass = (EditText) findViewById(R.id.etPassword); 
        if (pass.getText().toString().isEmpty()) { // <-- this is the 51 line 
         Snackbar.make(view, "Niste vnesli aktivacijske kode.", Snackbar.LENGTH_SHORT). 
           setAction("Action", null).show(); 
        } 
        else { 
         i=1; 
         viewPager.setCurrentItem(i); 
        } 
       } 
-1

난 당신이 ID를 사용하여 생각 다른 xml 파일에서 'etPassword'

는 여기 코드가 지금 보는 것입니다. 그 방법은 코드가 성공적으로 컴파일하지만 부동 버튼 널 포인터 예외를 클릭하면 런타임이 발생했습니다.

관련 문제