{"id":2571,"date":"2022-08-30T15:25:58","date_gmt":"2022-08-30T15:25:58","guid":{"rendered":"https:\/\/unknownerror.org\/index.php\/2014\/02\/03\/implementing-android-timepicker-from-tutorial-source-force-closes-collection-of-common-programming-errors\/"},"modified":"2022-08-30T15:25:58","modified_gmt":"2022-08-30T15:25:58","slug":"implementing-android-timepicker-from-tutorial-source-force-closes-collection-of-common-programming-errors","status":"publish","type":"post","link":"https:\/\/unknownerror.org\/index.php\/2022\/08\/30\/implementing-android-timepicker-from-tutorial-source-force-closes-collection-of-common-programming-errors\/","title":{"rendered":"Implementing Android TimePicker from Tutorial &#8211; Source Force Closes-Collection of common programming errors"},"content":{"rendered":"<p>I&#8217;m trying to implement a TimePicker into my source code from the following tutorial:<\/p>\n<p>http:\/\/www.lukehorvat.com\/blog\/android-time-picker-example\/<\/p>\n<p>However when implementing it in my app &#8211; I&#8217;m getting force close issues.<\/p>\n<p>Any suggestions?<\/p>\n<pre><code>JAVA:\n\nimport android.app.Activity;\nimport android.app.AlertDialog;\nimport android.os.AsyncTask;\nimport android.os.Bundle;\nimport android.view.ViewGroup;\nimport android.view.View;\nimport android.view.View.OnClickListener;\nimport android.widget.Button;\nimport android.widget.EditText;\nimport android.widget.FrameLayout;\nimport android.widget.TimePicker;\nimport android.os.Bundle;\nimport android.support.v4.app.DialogFragment;\nimport android.support.v4.app.FragmentActivity;\nimport android.text.format.DateFormat;\nimport android.view.View;\nimport android.view.View.OnClickListener;\nimport android.widget.Button;\nimport android.widget.TextView;\nimport android.app.Activity;\nimport android.app.Dialog;\nimport android.app.TimePickerDialog;\nimport android.os.Bundle;\nimport android.support.v4.app.DialogFragment;\nimport android.text.format.DateFormat;\nimport android.widget.TimePicker;\n\nimport com.nfc.linkingmanager.TimePickerFragment.TimePickedListener;\n\nimport java.util.Calendar;\n\npublic class AddEditCountry extends Activity implements TimePickedListener \n{\n    private TextView mPickedTimeText;\n    private Button mPickTimeButton;\n    private long rowID; \n     private EditText nameEt;\n     private EditText capEt;\n     private EditText codeEt;\n     private TimePicker timeEt;\n     public static final String KEY_BUNDLE_TIME = \"time\";\n     public static final String KEY_BUNDLE_MIN = \"min\";\n\n    @Override\n    public void onCreate(Bundle savedInstanceState)\n    {\n\n\n\n\n          nameEt = (EditText) findViewById(R.id.nameEdit);\n          capEt = (EditText) findViewById(R.id.capEdit);\n          codeEt = (EditText) findViewById(R.id.codeEdit);\n          timeEt = (TimePicker) findViewById(R.id.timeEdit);\n\n\n\n          Bundle extras = getIntent().getExtras(); \n\n          if (extras != null)\n          {\n             rowID = extras.getLong(\"row_id\");\n             nameEt.setText(extras.getString(\"name\"));  \n             capEt.setText(extras.getString(\"cap\"));  \n             codeEt.setText(extras.getString(\"code\"));\n             timeEt.setCurrentHour(extras.containsKey(KEY_BUNDLE_TIME) ? extras.getInt(KEY_BUNDLE_TIME) : 0);\n          }\n\n          Button saveButton =(Button) findViewById(R.id.saveBtn);\n          saveButton.setOnClickListener(new OnClickListener() {\n\n              public void onClick(View v) \n              {\n                 if (nameEt.getText().length() != 0)\n                 {\n                    AsyncTask saveContactTask = \n                       new AsyncTask() \n                       {\n                          @Override\n                          protected Object doInBackground(Object... params) \n                          {\n                             saveContact();\n                             return null;\n                          }\n\n                          @Override\n                          protected void onPostExecute(Object result) \n                          {\n                             finish();\n                          }\n                       }; \n\n                    saveContactTask.execute((Object[]) null); \n                 }\n\n                 else\n                 {\n                    AlertDialog.Builder alert = new AlertDialog.Builder(AddEditCountry.this);\n                    alert.setTitle(R.string.errorTitle); \n                    alert.setMessage(R.string.errorMessage);\n                    alert.setPositiveButton(R.string.errorButton, null); \n                    alert.show();\n                 }\n              } \n         });\n       }\n\n\n           private void saveContact() \n           {\n              DatabaseConnector dbConnector = new DatabaseConnector(this);\n\n              if (getIntent().getExtras() == null)\n              {\n                  dbConnector.insertContact(nameEt.getText().toString(),\n                          capEt.getText().toString(),\n                          timeEt.getCurrentHour().toString(),\n                          codeEt.getText().toString());\n\n              }\n              else\n              {\n                 dbConnector.updateContact(rowID,\n                    nameEt.getText().toString(),\n                    capEt.getText().toString(),\n                    timeEt.getCurrentHour().toString(),                 \n                    codeEt.getText().toString());\n              }\n           }\n\n\n        @Override\n        public void onTimePicked(Calendar time)\n        {\n            \/\/ display the selected time in the TextView\n            mPickedTimeText.setText(DateFormat.format(\"h:mm a\", time));\n        }\n}\n<\/code><\/pre>\n<p><strong>ADD COUNTRY XML:<\/strong><\/p>\n<pre><code>\n\n\n   \n\n      \n\n      \n\n    \n\n    \n\n    \n\n        \n\n        \n    \n\n    \n\n    \n\n    \n\n        \n\n        \n    \n\n    \n\n    \n\n\n    \n\n    \n\n    \n\n        \n    \n\n      \n   \n\n<\/code><\/pre>\n<p><strong>TIMEPICKERFRAGMENT.JAVA<\/strong><\/p>\n<pre><code>package com.nfc.linkingmanager;\n\n\nimport android.app.Activity;\nimport android.app.Dialog;\nimport android.app.TimePickerDialog;\nimport android.os.Bundle;\nimport android.support.v4.app.DialogFragment;\nimport android.text.format.DateFormat;\nimport android.widget.TimePicker;\n\nimport java.util.Calendar;\n\npublic class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener\n{\n    private TimePickedListener mListener;\n\n    @Override\n    public Dialog onCreateDialog(Bundle savedInstanceState)\n    {\n        \/\/ use the current time as the default values for the picker\n        final Calendar c = Calendar.getInstance();\n        int hour = c.get(Calendar.HOUR_OF_DAY);\n        int minute = c.get(Calendar.MINUTE);\n\n        \/\/ create a new instance of TimePickerDialog and return it\n        return new TimePickerDialog(getActivity(), this, hour, minute, DateFormat.is24HourFormat(getActivity()));\n    }\n\n    @Override\n    public void onAttach(Activity activity)\n    {\n        \/\/ when the fragment is initially shown (i.e. attached to the activity), cast the activity to the callback interface type\n        super.onAttach(activity);\n        try\n        {\n            mListener = (TimePickedListener) activity;\n        }\n        catch (ClassCastException e)\n        {\n            throw new ClassCastException(activity.toString() + \" must implement \" + TimePickedListener.class.getName());\n        }\n    }\n\n    @Override\n    public void onTimeSet(TimePicker view, int hourOfDay, int minute)\n    {\n        \/\/ when the time is selected, send it to the activity via its callback interface method\n        Calendar c = Calendar.getInstance();\n        c.set(Calendar.HOUR_OF_DAY, hourOfDay);\n        c.set(Calendar.MINUTE, minute);\n\n        mListener.onTimePicked(c);\n    }\n\n    public static interface TimePickedListener\n    {\n        public void onTimePicked(Calendar time);\n    }\n}\n<\/code><\/pre>\n<p><strong>LOGCAT:<\/strong><\/p>\n<pre><code>03-25 02:50:06.783: I\/Adreno200-EGLSUB(27045): : Format RGBA_8888.\n03-25 02:50:06.783: D\/memalloc(27045): ion: Mapped buffer base:0x5ca43000 size:614400 offset:0 fd:57\n03-25 02:50:06.783: E\/(27045): Can't open file for reading\n03-25 02:50:06.783: E\/(27045): Can't open file for reading\n03-25 02:50:06.823: D\/memalloc(27045): ion: Mapped buffer base:0x5d234000 size:614400 offset:0 fd:61\n03-25 02:50:08.695: D\/Activity(27045): Activity.onPause(), editTextTapSensorList size: 0\n03-25 02:50:08.715: W\/dalvikvm(27045): threadid=1: thread exiting with uncaught exception (group=0x4108b9d8)\n03-25 02:50:08.715: E\/AndroidRuntime(27045): FATAL EXCEPTION: main\n03-25 02:50:08.715: E\/AndroidRuntime(27045): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nfc.linkingmanager\/com.nfc.linkingmanager.AddEditCountry}: java.lang.NullPointerException\n03-25 02:50:08.715: E\/AndroidRuntime(27045):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1960)\n03-25 02:50:08.715: E\/AndroidRuntime(27045):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1985)\n03-25 02:50:08.715: E\/AndroidRuntime(27045):    at android.app.ActivityThread.access$600(ActivityThread.java:127)\n03-25 02:50:08.715: E\/AndroidRuntime(27045):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1151)\n03-25 02:50:08.715: E\/AndroidRuntime(27045):    at android.os.Handler.dispatchMessage(Handler.java:99)\n03-25 02:50:08.715: E\/AndroidRuntime(27045):    at android.os.Looper.loop(Looper.java:137)\n03-25 02:50:08.715: E\/AndroidRuntime(27045):    at android.app.ActivityThread.main(ActivityThread.java:4477)\n03-25 02:50:08.715: E\/AndroidRuntime(27045):    at java.lang.reflect.Method.invokeNative(Native Method)\n03-25 02:50:08.715: E\/AndroidRuntime(27045):    at java.lang.reflect.Method.invoke(Method.java:511)\n03-25 02:50:08.715: E\/AndroidRuntime(27045):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788)\n03-25 02:50:08.715: E\/AndroidRuntime(27045):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)\n03-25 02:50:08.715: E\/AndroidRuntime(27045):    at dalvik.system.NativeStart.main(Native Method)\n03-25 02:50:08.715: E\/AndroidRuntime(27045): Caused by: java.lang.NullPointerException\n03-25 02:50:08.715: E\/AndroidRuntime(27045):    at com.nfc.linkingmanager.AddEditCountry.onCreate(AddEditCountry.java:73)\n03-25 02:50:08.715: E\/AndroidRuntime(27045):    at android.app.Activity.performCreate(Activity.java:4701)\n03-25 02:50:08.715: E\/AndroidRuntime(27045):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1051)\n03-25 02:50:08.715: E\/AndroidRuntime(27045):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1924)\n03-25 02:50:08.715: E\/AndroidRuntime(27045):    ... 11 more\n<\/code><\/pre>\n<ol>\n<li>\n<p>You don&#8217;t have an element called TimeEdit in your xml. So when you try to set its text, it crashes with a null pointer exception.<\/p>\n<\/li>\n<li>\n<p>where you define Timepicker<\/p>\n<pre><code> timeEt = (TimePicker) findViewById(R.id.timeEdit);\n<\/code><\/pre>\n<p>in your xml file. Check your xml file and give different id to all.<\/p>\n<\/li>\n<\/ol>\n<p id=\"rop\"><small>Originally posted 2014-02-03 02:34:54. <\/small><\/p>","protected":false},"excerpt":{"rendered":"<p>I&#8217;m trying to implement a TimePicker into my source code from the following tutorial: http:\/\/www.lukehorvat.com\/blog\/android-time-picker-example\/ However when implementing it in my app &#8211; I&#8217;m getting force close issues. Any suggestions? JAVA: import android.app.Activity; import android.app.AlertDialog; import android.os.AsyncTask; import android.os.Bundle; import android.view.ViewGroup; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.FrameLayout; import android.widget.TimePicker; import android.os.Bundle; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2571","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/2571","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/comments?post=2571"}],"version-history":[{"count":0,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/2571\/revisions"}],"wp:attachment":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/media?parent=2571"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/categories?post=2571"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/tags?post=2571"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}