I have toggle button which work good for some function. But when I use for toast, toggle button is null pointer.
This is my code:
if (tgbutton.isChecked()) {
Toast.makeText(getApplicationContext(), "MY TEXT HERE", Toast.LENGTH_LONG).show();
}
App is working well when use toast with no toggle button, but app is crashed when I used toast with toggle button.
How to use toast with toggle button?
Thanks
EDIT:
This is from logcat:
05-20 21:59:07.568: E/AndroidRuntime(26777): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mygames.testpackage2/com.testpackage.challenge.CH__QuestionActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.widget.ToggleButton.isChecked()' on a null object reference 05-20 21:59:07.568: E/AndroidRuntime(26777): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2316) 05-20 21:59:07.568: E/AndroidRuntime(26777): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2376) 05-20 21:59:07.568: E/AndroidRuntime(26777): at android.app.ActivityThread.access$800(ActivityThread.java:147) 05-20 21:59:07.568: E/AndroidRuntime(26777): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281) 05-20 21:59:07.568: E/AndroidRuntime(26777): at android.os.Handler.dispatchMessage(Handler.java:102) 05-20 21:59:07.568: E/AndroidRuntime(26777): at android.os.Looper.loop(Looper.java:135) 05-20 21:59:07.568: E/AndroidRuntime(26777): at android.app.ActivityThread.main(ActivityThread.java:5253) 05-20 21:59:07.568: E/AndroidRuntime(26777): at java.lang.reflect.Method.invoke(Native Method) 05-20 21:59:07.568: E/AndroidRuntime(26777): at java.lang.reflect.Method.invoke(Method.java:372) 05-20 21:59:07.568: E/AndroidRuntime(26777): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 05-20 21:59:07.568: E/AndroidRuntime(26777): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 05-20 21:59:07.568: E/AndroidRuntime(26777): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.widget.ToggleButton.isChecked()' on a null object reference 05-20 21:59:07.568: E/AndroidRuntime(26777): at com.testpackage.challenge.CH__QuestionActivity.displayQuestion(CH__QuestionActivity.java:613) 05-20 21:59:07.568: E/AndroidRuntime(26777): at com.testpackage.challenge.CH__QuestionActivity.displayNextQuestion(CH__QuestionActivity.java:554) 05-20 21:59:07.568: E/AndroidRuntime(26777): at com.testpackage.challenge.CH__QuestionActivity.onCreate(CH__QuestionActivity.java:218) 05-20 21:59:07.568: E/AndroidRuntime(26777): at android.app.Activity.performCreate(Activity.java:5975) 05-20 21:59:07.568: E/AndroidRuntime(26777): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) 05-20 21:59:07.568: E/AndroidRuntime(26777): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2269) 05-20 21:59:07.568: E/AndroidRuntime(26777): ... 10 more
The stack trace show that your tgbutton is null
.
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.widget.ToggleButton.isChecked()' on a null object reference 05-20 21:59:07.568: E/AndroidRuntime(26777)
There are 2 things you should to correct:
1) Make sure to bind your view.
ToggleButton tgButton = (ToggleButton) findViewById(R.id.your_tg_button_id);
2) Make sure to check null
before use:
if (null != tgbutton && tgbutton.isChecked()) {
Toast.makeText(getApplicationContext(), "MY TEXT HERE", Toast.LENGTH_LONG).show();
}