2017-01-17 39 views
-1

我在我的應用程序中收到NullPointerException。現在已經有一天了。在我正在開發的應用程序中獲取NullPointerException

以下是錯誤,

E/AndroidRuntime: FATAL EXCEPTION: main 
        Process: com.sourcey.materialloginexample, PID: 29568 
        java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference 
        at com.sourcey.materiallogindemo.RedeemFragment$1.onClick(RedeemFragment.java:50) 

下面是代碼,

public class RedeemFragment extends Fragment { 

    //DatePicker picker; 
    //Button displayDate; 
    //TextView textview1; 
    @Bind(R.id.editText1) 
    EditText _sirText; 
    @Bind(R.id.editText2) 
    EditText _FirstText; 
    @Bind(R.id.editText3) 
    EditText _MidText; 
    @Bind(R.id.editText4) 
    EditText _LastText; 
    @Bind(R.id.btn1) 
    Button _detailsButton; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View v = inflater.inflate(R.layout.profile, container, false); 


     Button b1 = (Button)v.findViewById(R.id.btn1); 

     b1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent intent = new Intent(getActivity(),SendInfo.class); 
       intent.putExtra("sname", _sirText.getText().toString()); 
       intent.putExtra("fname", _FirstText.getText().toString()); 
       intent.putExtra("mname", _MidText.getText().toString()); 
       intent.putExtra("lname", _LastText.getText().toString()); 
       startActivity(intent); 

       details(); 
      } 
     }); 

     return v; 
     /*textview1=(TextView)findViewById(R.id.textView1); 
     picker=(DatePicker)findViewById(R.id.datePicker); 
     displayDate=(Button)findViewById(R.id.pickDate); 

     textview1.setText(getCurrentDate()); 

     displayDate.setOnClickListener(new View.OnClickListener(){ 
      @Override 
      public void onClick(View view) { 
       textview1.setText(getCurrentDate()); 
      } 

     });*/ 
    } 
    /*public String getCurrentDate(){ 
     StringBuilder builder=new StringBuilder(); 
     builder.append("Current Date: "); 
     builder.append((picker.getMonth() + 1)+"/");//month is 0 based 
     builder.append(picker.getDayOfMonth()+"/"); 
     builder.append(picker.getYear()); 
     return builder.toString(); 
    }*/ 


    public void details() { 

     if (!validate()) { 
      onDetailIncorrect(); 
      return; 
     } 

     _detailsButton.setEnabled(false); 


     new android.os.Handler().postDelayed(
       new Runnable() { 
        public void run() { 
         // On complete call either onLoginSuccess or onLoginFailed 
         onDetailCorrect(); 
         // onLoginFailed(); 
        } 
       }, 3000); 
    } 

    public void onDetailCorrect() { 
     _detailsButton.setEnabled(true); 
     onDestroy(); 
    } 
    public void onDetailIncorrect() { 
     Toast.makeText(getActivity(), "Fill in the blanks appropriately !!", Toast.LENGTH_LONG).show(); 

     _detailsButton.setEnabled(true); 
    } 

    public boolean validate() { 
     boolean valid = true; 

     String sir = _sirText.getText().toString(); 
     String first = _FirstText.getText().toString(); 
     String mid = _MidText.getText().toString(); 
     String last = _LastText.getText().toString(); 

     if (sir.isEmpty()) { 
      _sirText.setError("enter Sir name"); 
      valid = false; 
     } else { 
      _sirText.setError(null); 
     } 

     if (first.isEmpty()) { 
      _FirstText.setError("enter First Name"); 
      valid = false; 
     } else { 
      _FirstText.setError(null); 
     } 
     if (mid.isEmpty()) { 
      _MidText.setError("enter Middle Name"); 
      valid = false; 
     } else { 
      _MidText.setError(null); 
     } 

     if (last.isEmpty()) { 
      _LastText.setError("enter Last Name"); 
      valid = false; 
     } else { 
      _LastText.setError(null); 
     } 

     return valid; 
    } 
} 
+3

我注意使用@Bind的 - 您使用ButterKnife?我懷疑你沒有調用你正在使用的任何綁定庫的'init'方法。 –

+0

或者你在佈局 – xAqweRx

+0

中沒有你的'EditText's'你的意思是姓氏而不是「Sir Name」?只是我注意到的東西。 –

回答

0

假設你正在使用ButterKnife,在onCreateView()堅持這一點,只需在您的觀點是膨脹後的狀態:

ButterKnife.bind(this, v); 

另見:Documentation

相關問題