Hi i'm new in Android I'm getting Null point exception when configuration change occur in my app (portrait to landscape) this is my simple calculator App
My code in fragment is :
public class CalculatorFragment extends Fragment {
private TextView mTextViewString;
private boolean mLastNumeric;
private boolean mStateError;
private boolean mLastDot;
private Button mButtonDelete;
private Button mButtonOne;
private Button mButtonTwo;
private Button mButtonThree;
private Button mButtonFour;
private Button mButtonFive;
private Button mButtonSix;
private Button mButtonSeven;
private Button mButtonEight;
private Button mButtonNine;
private Button mButtonZero;
private Button mButtonSum;
private Button mButtonDivide;
private Button mButtonNegative;
private Button mButtonPoint;
private Button mButtonEqual;
private Button mButtonMultiply;
public CalculatorFragment() {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_calculator, container, false);
findViews(view);
setNumericOnClickListener();
setOperatorOnClickListener();
return view;
}
private void findViews(View view) {
mTextViewString = view.findViewById(R.id.textView_show_number);
mButtonDelete = view.findViewById(R.id.button_delete);
mButtonOne = view.findViewById(R.id.button_one);
mButtonTwo = view.findViewById(R.id.button_two);
mButtonThree = view.findViewById(R.id.button_three);
mButtonFour = view.findViewById(R.id.button_four);
mButtonFive = view.findViewById(R.id.button_five);
mButtonSix = view.findViewById(R.id.button_six);
mButtonSeven = view.findViewById(R.id.button_seven);
mButtonEight = view.findViewById(R.id.button_eight);
mButtonNine = view.findViewById(R.id.button_nine);
mButtonNegative = view.findViewById(R.id.button_negative);
mButtonSum = view.findViewById(R.id.button_sum);
mButtonDivide = view.findViewById(R.id.button_divide);
mButtonMultiply = view.findViewById(R.id.button_multiply);
mButtonZero = view.findViewById(R.id.button_zero);
mButtonPoint = view.findViewById(R.id.button_point);
mButtonEqual = view.findViewById(R.id.button_equal);
}
private void setNumericOnClickListener() {
View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
Button button = (Button) v;
if (mStateError) {
mTextViewString.setText(button.getText());
mStateError = false;
} else {
mTextViewString.append(button.getText());
}
mLastNumeric = true;
}
};
mButtonZero.setOnClickListener(listener);
mButtonOne.setOnClickListener(listener);
mButtonTwo.setOnClickListener(listener);
mButtonThree.setOnClickListener(listener);
mButtonFour.setOnClickListener(listener);
mButtonFive.setOnClickListener(listener);
mButtonSix.setOnClickListener(listener);
mButtonSeven.setOnClickListener(listener);
mButtonEight.setOnClickListener(listener);
mButtonNine.setOnClickListener(listener);
}
My Error Text in Android Studio is :
Attempt to invoke virtual method on a null object reference mButtonZero
java.lang.NullPointerException:com.example.calculator.controller.fragments.CalculatorFragment.setNumericOnClickListener(CalculatorFragment.java:107)