Note that there are some explanatory texts on larger screens.

plurals
  1. PONull Value for nameArr in ArrayList
    primarykey
    data
    text
    <p>I'm getting a null value for nameArr in the following source code and I'm not sure why. </p> <p>When I attempt to use the following: </p> <pre><code>System.out.println("testing123"); System.out.println(nameArr); </code></pre> <p>I’m getting:</p> <pre><code>08-07 19:51:53.540: I/System.out(1048): testing123 08-07 19:51:53.540: I/System.out(1048): [] </code></pre> <p>It it appears it’s null at this point – any suggestions? </p> <p>I'm really not sure why this is happening.</p> <p>SOURCE:</p> <pre><code>public class UpdateActivity extends Activity implements OnClickListener { public static ArrayList&lt;String&gt; NameArr = new ArrayList&lt;String&gt;(); public static ArrayList&lt;String&gt; ValueArr = new ArrayList&lt;String&gt;(); public static ArrayList&lt;String&gt; nameArr = new ArrayList&lt;String&gt;(); public static ArrayList&lt;String&gt; ApnArr = new ArrayList&lt;String&gt;(); public static ArrayList&lt;String&gt; mmscArr = new ArrayList&lt;String&gt;(); public static ArrayList&lt;String&gt; mmsportArr = new ArrayList&lt;String&gt;(); public static ArrayList&lt;String&gt; mmsproxyArr = new ArrayList&lt;String&gt;(); public static ArrayList&lt;String&gt; portArr = new ArrayList&lt;String&gt;(); public static ArrayList&lt;String&gt; proxyArr = new ArrayList&lt;String&gt;(); public static int count; AlertDialog mErrorAlert = null; public static int TotalSteps = 8; private TelephonyManager tm; private static final String LOG_TAG = "STDataSettings"; private Button mUpdateButton = null; private Button mAssistUpdateButton = null; private Button mAssistInstrButton = null; private TextView mReadAgainButton = null; private int mInstructionNumber = 0; AlertDialog mConfirmAlert = null; public static InputStream stream = null; public static XmlParserHandlerFinal handler; private NetworkTask task; private AnimationDrawable loadingAnimation; private static final String TAG = "UpdateActivity"; Context ctx; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); int networkType = tm.getNetworkType(); int phoneType = tm.getPhoneType(); task = new NetworkTask(); handler = new XmlParserHandlerFinal(); handler.setContext(ctx); int version = android.os.Build.VERSION.SDK_INT; if (phoneType == TelephonyManager.PHONE_TYPE_CDMA || (phoneType != TelephonyManager.PHONE_TYPE_GSM &amp;&amp; networkType != TelephonyManager.NETWORK_TYPE_GPRS &amp;&amp; networkType != TelephonyManager.NETWORK_TYPE_EDGE &amp;&amp; networkType != TelephonyManager.NETWORK_TYPE_HSDPA &amp;&amp; networkType != TelephonyManager.NETWORK_TYPE_HSPA &amp;&amp; networkType != TelephonyManager.NETWORK_TYPE_HSPAP &amp;&amp; networkType != TelephonyManager.NETWORK_TYPE_HSUPA &amp;&amp; networkType != TelephonyManager.NETWORK_TYPE_UMTS &amp;&amp; networkType != TelephonyManager.NETWORK_TYPE_LTE)) { // If the phone type is CDMA or // the phone phone type is not GSM and the network type is none of // the network types indicated in the statement // Display incompatibility message showAlert(getString(R.string.incomp_sm_dialog)); // Network type is looked because some tablets have no phone type. // We rely on network type in such cases } else if (!(tm.getSimState() == TelephonyManager.SIM_STATE_ABSENT || (tm.getSimOperator()) .equals(getString(R.string.numeric_tmo)) || (tm .getSimOperator()).equals(getString(R.string.numeric_att)))) { // if SIM is present and is NOT a T-Mo network SIM, // display Error message alert indicating to use SM SIM showAlert(getString(R.string.insert_sm_dialog)); }// No SIM or SIM with T-Mo MNC MCC present else if (version &lt; VERSION_CODES.ICE_CREAM_SANDWICH) { // Initial UI setup for versions lower than ICS setContentView(R.layout.update); mUpdateButton = (Button) findViewById(R.id.update_button); mUpdateButton.setOnClickListener(this); } else {// ICS and up // task.execute(); if ((tm.getSimOperator()).equals(getString(R.string.numeric_tmo)) || (tm.getSimOperator()) .equals(getString(R.string.numeric_att))) { // Update APN table in separate thread task.execute(""); // Device has T-Mo network SIM card MCC and MNC correctly // populated // Reduce number of steps to 6 TotalSteps = 6; } // // Initial UI setup for ICS and up // setContentView(R.layout.updating); // String assistUpdate = getString(R.string.apn_app_text_cta2); // CharSequence styledText = Html.fromHtml(assistUpdate); // xtView assistText = (TextView) // findViewById(R.id.apn_app_text_cta2); // sistText.setText(styledText); // mAssistUpdateButton = (Button) // findViewById(R.id.assist_update_btn); //mAssistUpdateButton.setOnClickListener(this); } } public void onClick(View v) { if (v == mUpdateButton) { // Update button for versions lower than ICS is selected // setContentView(R.layout.updating); onClickMethod(v); Intent i = new Intent(this, ConfigFinalActivity.class); startActivity(i); finish(); } else if (v == mAssistUpdateButton) { // Update button for ICS and up is selected // Get the TextView in the Assist Update UI TextView tv = (TextView) findViewById(R.id.apn_app_text_cta2); String text = ""; CharSequence styledText = text; switch (mInstructionNumber) { case 0: // Retrieve the instruction string resource corresponding the // 2nd set of instructions text = String.format(getString(R.string.apn_app_text_instr), TotalSteps); styledText = Html.fromHtml(text); // Update the TextView with the correct set of instructions tv.setText(styledText); // Increment instruction number so the correct instructions // string resource can be retrieve the next time the update // button is pressed mInstructionNumber++; break; case 1: text = getString(R.string.apn_app_text_instr2); styledText = Html.fromHtml(text); tv.setText(styledText); // Increment instruction number so the correct instructions // string resource can be retrieve the next time the update // button is pressed mInstructionNumber++; break; case 2: // Final set of instructions-Change to the corresponding layout setContentView(R.layout.assist_instructions); String assistUpdateInstr = String.format( getString(R.string.apn_app_text_instr3), TotalSteps); styledText = Html.fromHtml(assistUpdateInstr); TextView assistInstrText = (TextView) findViewById(R.id.updated_text); assistInstrText.setText(styledText); mAssistInstrButton = (Button) findViewById(R.id.assist_instr_btn); mReadAgainButton = (TextView) findViewById(R.id.read_again_btn); mAssistInstrButton.setOnClickListener(this); mReadAgainButton.setOnClickListener(this); } } else if (v == mAssistInstrButton) { // "LET'S DO THIS" Button in final instructions screen for ICS and // up is selected // Create ConfigActivity Intent Intent i = new Intent(this, ConfigFinalActivity.class); // Invoke ConfigActivity Intent to start the assisted update startActivity(i); finish(); } else if (v == mReadAgainButton) { // go back to 1st set of instructions if read again is selected mInstructionNumber = 0; setContentView(R.layout.assist_update); String assistUpdate = getString(R.string.apn_app_text_cta2); CharSequence styledText = Html.fromHtml(assistUpdate); TextView assistText = (TextView) findViewById(R.id.apn_app_text_cta2); assistText.setText(styledText); mAssistUpdateButton = (Button) findViewById(R.id.assist_update_btn); mAssistUpdateButton.setOnClickListener(this); } } public void onClickMethod(View v) { mUpdateButton = (Button) findViewById(R.drawable.btn_update_active_hdpi); } private void showAlert(String message) { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage(message).setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { UpdateActivity.this.finish(); } }); mConfirmAlert = builder.create(); mConfirmAlert.show(); } // AsyncTask to call web service private class NetworkTask extends AsyncTask&lt;String, Integer, InputStream&gt; { @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected InputStream doInBackground(String... params) { try { // saving the response in InputStream stream = getQueryResults("https://dl.dropboxusercontent.com/u/31771876/GetPhoneSettings-rsp-eng.xml"); // stream = new BufferedInputStream(https.getInputStream()); DataInputStream in = new DataInputStream(stream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String strLine; while ((strLine = br.readLine()) != null) { // Print the content on the console System.out.println (strLine); in.close(); } } catch (IOException e) { Log.v(LOG_TAG, e.toString()); e.printStackTrace(); } catch (SAXException e) { Log.v(LOG_TAG, e.toString()); e.printStackTrace(); } catch (Exception e) { Log.v(LOG_TAG, e.toString()); e.printStackTrace(); } // The code below plays a Simple Promo animation for (int incr = 0; incr &lt; 2; incr++) { // Sleep for 1/2 second // Invoke UI to change updating text to show 1 dot // And Increasing the level to reduce the amount of clipping and // slowly reveals the hand image publishProgress(R.drawable.loading_full, R.drawable.loading_empty, R.drawable.loading_empty, R.drawable.loading_empty, R.drawable.loading_empty); try { Thread.sleep(500); } catch (InterruptedException e) { // TODO Auto-generated catch block Log.d(TAG, "sleep failure"); } publishProgress(R.drawable.loading_full, R.drawable.loading_full, R.drawable.loading_empty, R.drawable.loading_empty, R.drawable.loading_empty); try { Thread.sleep(500); } catch (InterruptedException e) { // TODO Auto-generated catch block Log.d(TAG, "sleep failure"); } publishProgress(R.drawable.loading_full, R.drawable.loading_full, R.drawable.loading_full, R.drawable.loading_empty, R.drawable.loading_empty); try { Thread.sleep(500); } catch (InterruptedException e) { // TODO Auto-generated catch block Log.d(TAG, "sleep failure"); } publishProgress(R.drawable.loading_full, R.drawable.loading_full, R.drawable.loading_full, R.drawable.loading_full, R.drawable.loading_empty); try { Thread.sleep(500); } catch (InterruptedException e) { // TODO Auto-generated catch block Log.d(TAG, "sleep failure"); } publishProgress(R.drawable.loading_full, R.drawable.loading_full, R.drawable.loading_full, R.drawable.loading_full, R.drawable.loading_full); // Sleep for 1/2 second try { Thread.sleep(500); } catch (InterruptedException e) { // TODO Auto-generated catch block Log.d(TAG, "sleep failure"); } } return stream; } /* * Sends a query to server and gets back the parsed results in a bundle * urlQueryString - URL for calling the webservice */ protected synchronized InputStream getQueryResults(String urlQueryString) throws IOException, SAXException, SSLException, SocketTimeoutException, Exception { // HttpsURLConnection https = null; HttpsURLConnection https = null; String uri = urlQueryString; URL urlo = new URL(uri); try { https = (HttpsURLConnection) urlo.openConnection(); https.setConnectTimeout(20000); // 20 second timeout https.setRequestProperty("Connection", "Keep-Alive"); if ("gzip".equals(https.getContentEncoding())) { stream = new GZIPInputStream(stream); } else stream = https.getInputStream(); } catch (SSLException e) { Log.e(LOG_TAG, e.toString()); e.printStackTrace(); } catch (SocketTimeoutException e) { Log.e(LOG_TAG, e.toString()); e.printStackTrace(); } catch (IOException e) { Log.e(LOG_TAG, e.toString()); e.printStackTrace(); } catch (Exception e) { Log.e(LOG_TAG, e.toString()); e.printStackTrace(); } finally { // https.disconnect(); } return stream; } @Override protected void onProgressUpdate(Integer... progress) { // Call function to update image view setProgressImgView(progress[0], progress[1]); } @Override protected void onPostExecute(InputStream stream) { super.onPostExecute(stream); // This method is called to parse the response and save the ArrayLists success(); } } private void setProgressImgView(Integer textViewId, Integer imageViewId) { // update image view with the updating dots // Reset view layout in case orientation while updating //setContentView(R.layout.updating); } @Override protected void onRestart() { super.onRestart(); if (mErrorAlert != null) mErrorAlert.dismiss(); } public void success() { // to parse the response try { handler.getQueryResponse(stream); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // to set method to save the ArryaLists from the parser setArrayList(); Intent i = new Intent(this, ConfigFinalActivity.class); startActivity(i); finish(); } // method to save the ArrayLists from parser public static void setArrayList() { //nameArr = handler.getnameArr(); nameArr.addAll(handler.getnameArr()); ApnArr = handler.getApnArr(); mmscArr = handler.getMMSCArr(); mmsproxyArr = handler.getMmscProxyArr(); mmsportArr = handler.getMmsPortArr(); proxyArr = handler.getMmscProxyArr(); portArr = handler.getMmsPortArr(); count = handler.getCount(); System.out.println("testing123"); System.out.println(nameArr); } } </code></pre> <p>Handler Source: (hosted on google docs - it exceeds the character limit for this post) </p> <p><a href="https://docs.google.com/document/d/1rosp9zM0RmFyBZVWaXaHJeLAITWiM2ziAU_JR9eNRzg/edit?usp=sharing" rel="nofollow">https://docs.google.com/document/d/1rosp9zM0RmFyBZVWaXaHJeLAITWiM2ziAU_JR9eNRzg/edit?usp=sharing</a></p> <p>P.S.</p> <p>I'm getting a null pointer error on the line:</p> <pre><code>String value = Values.get("name").toString(); </code></pre> <p>LOGCAT:</p> <pre><code>08-07 21:30:24.510: E/AndroidRuntime(1998): FATAL EXCEPTION: main 08-07 21:30:24.510: E/AndroidRuntime(1998): java.lang.NullPointerException 08-07 21:30:24.510: E/AndroidRuntime(1998): at com.project.new.datasettings.ConfigFinalActivity.showNotification(ConfigFinalActivity.java:509) 08-07 21:30:24.510: E/AndroidRuntime(1998): at com.project.new.datasettings.ConfigFinalActivity.onClick(ConfigFinalActivity.java:620) 08-07 21:30:24.510: E/AndroidRuntime(1998): at android.view.View.performClick(View.java:4204) 08-07 21:30:24.510: E/AndroidRuntime(1998): at android.view.View$PerformClick.run(View.java:17355) 08-07 21:30:24.510: E/AndroidRuntime(1998): at android.os.Handler.handleCallback(Handler.java:725) 08-07 21:30:24.510: E/AndroidRuntime(1998): at android.os.Handler.dispatchMessage(Handler.java:92) 08-07 21:30:24.510: E/AndroidRuntime(1998): at android.os.Looper.loop(Looper.java:137) 08-07 21:30:24.510: E/AndroidRuntime(1998): at android.app.ActivityThread.main(ActivityThread.java:5041) 08-07 21:30:24.510: E/AndroidRuntime(1998): at java.lang.reflect.Method.invokeNative(Native Method) 08-07 21:30:24.510: E/AndroidRuntime(1998): at java.lang.reflect.Method.invoke(Method.java:511) 08-07 21:30:24.510: E/AndroidRuntime(1998): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 08-07 21:30:24.510: E/AndroidRuntime(1998): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 08-07 21:30:24.510: E/AndroidRuntime(1998): at dalvik.system.NativeStart.main(Native Method) 08-07 21:30:28.750: I/Process(1998): Sending signal. PID: 1998 SIG: 9 </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload