Note that there are some explanatory texts on larger screens.

plurals
  1. POandroid fatal exception spinner
    primarykey
    data
    text
    <p>I want to get all cities in a asynctask then when the user press on a city i want to get all areas inside that city in another asynctask</p> <p>I tried this:</p> <pre><code>class getAllCities extends AsyncTask&lt;String, Integer, List&lt;City&gt;&gt; { @Override protected void onPostExecute(List&lt;City&gt; result) { super.onPostExecute(result); final String newCities[] = new String[result.size()]; for (int i = 0; i &lt; result.size(); i++) newCities[i] = result.get(i).getName(); cityAdapter = new ArrayAdapter&lt;String&gt;(Address.this, android.R.layout.simple_spinner_item, newCities); cityAdapter .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); s_city.setAdapter(cityAdapter); s_city.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView&lt;?&gt; arg0, View arg1, int arg2, long arg3) { //Log.d("item", newCities[arg2]); new getAreasInCity(newCities[arg2]).execute("d"); } @Override public void onNothingSelected(AdapterView&lt;?&gt; arg0) { // TODO Auto-generated method stub } }); } @Override protected List&lt;City&gt; doInBackground(String... params) { return City.getAllCities(); } } class getAreasInCity extends AsyncTask&lt;String, Integer, List&lt;Area&gt;&gt; { City city; public getAreasInCity(String cityName) { city = City.getCity(cityName); } @Override protected void onPostExecute(List&lt;Area&gt; result) { super.onPostExecute(result); if(result == null) Log.d("area size = ", "null"); else Log.d("area size = ", result.size()+""); String newArea[] = new String[result.size()]; s_area = (Spinner)findViewById(R.id.s_address_area); areaAdapter = new ArrayAdapter&lt;String&gt;(Address.this, android.R.layout.simple_spinner_item, newArea); areaAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); if(s_area != null){ Log.d("here","saaallllllllllllllllllllll"); areaAdapter.notifyDataSetChanged(); s_area.setAdapter(areaAdapter); } else Log.d("here ", "asedsssssssssssssss"); } @Override protected List&lt;Area&gt; doInBackground(String... params) { return Area.getAreasInCity(city.getID()); } } </code></pre> <p>in the log cat i can see this <code>saaallllllllllllllllllllll</code>, i got this exception:</p> <pre><code>06-07 12:00:18.968: E/AndroidRuntime(25867): FATAL EXCEPTION: main 06-07 12:00:18.968: E/AndroidRuntime(25867): java.lang.NullPointerException 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:355) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.widget.AbsSpinner.onMeasure(AbsSpinner.java:192) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.view.View.measure(View.java:8462) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:581) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:365) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.view.View.measure(View.java:8462) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3231) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1021) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.widget.LinearLayout.measureVertical(LinearLayout.java:390) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.widget.LinearLayout.onMeasure(LinearLayout.java:313) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.view.View.measure(View.java:8462) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1086) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.widget.FrameLayout.onMeasure(FrameLayout.java:254) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.widget.ScrollView.onMeasure(ScrollView.java:300) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.view.View.measure(View.java:8462) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3231) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.widget.FrameLayout.onMeasure(FrameLayout.java:254) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.view.View.measure(View.java:8462) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.widget.LinearLayout.measureVertical(LinearLayout.java:535) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.widget.LinearLayout.onMeasure(LinearLayout.java:313) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.view.View.measure(View.java:8462) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3231) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.widget.FrameLayout.onMeasure(FrameLayout.java:254) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.view.View.measure(View.java:8462) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.view.ViewRoot.performTraversals(ViewRoot.java:861) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.view.ViewRoot.handleMessage(ViewRoot.java:1882) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.os.Handler.dispatchMessage(Handler.java:99) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.os.Looper.loop(Looper.java:130) 06-07 12:00:18.968: E/AndroidRuntime(25867): at android.app.ActivityThread.main(ActivityThread.java:3701) 06-07 12:00:18.968: E/AndroidRuntime(25867): at java.lang.reflect.Method.invokeNative(Native Method) 06-07 12:00:18.968: E/AndroidRuntime(25867): at java.lang.reflect.Method.invoke(Method.java:507) 06-07 12:00:18.968: E/AndroidRuntime(25867): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) 06-07 12:00:18.968: E/AndroidRuntime(25867): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624) 06-07 12:00:18.968: E/AndroidRuntime(25867): at dalvik.system.NativeStart.main(Native Method) </code></pre> <p><strong>notice when I removed <code>s_area.setAdapter(areaAdapter);</code> the exception goes, but the new spiner becomes empty.</strong></p> <p>any help please</p> <h3>my all code </h3> <pre><code>public class Address extends Activity implements OnClickListener { Spinner s_city, s_area; ArrayAdapter&lt;String&gt; cityAdapter; ArrayAdapter&lt;String&gt; areaAdapter; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.address); getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); initialize(); } String[] cities = new String[0]; String[] areas = new String[0]; private void initialize() { s_city = (Spinner) findViewById(R.id.s_address_city); cityAdapter = new ArrayAdapter&lt;String&gt;(this, android.R.layout.simple_spinner_item, cities); cityAdapter .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); s_city.setAdapter(cityAdapter); s_area = (Spinner) findViewById(R.id.s_address_area); areaAdapter = new ArrayAdapter&lt;String&gt;(this, android.R.layout.simple_spinner_item, areas); s_area.setAdapter(areaAdapter); new getAllCities().execute("city"); } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.b_addItem_save: Intent resultsIntent = new Intent(); resultsIntent.putExtra("City", "Roma"); setResult(RESULT_OK, resultsIntent); finish(); break; default: break; } } class getAllCities extends AsyncTask&lt;String, Integer, List&lt;City&gt;&gt; { @Override protected void onPostExecute(List&lt;City&gt; result) { super.onPostExecute(result); final String newCities[] = new String[result.size()]; for (int i = 0; i &lt; result.size(); i++) newCities[i] = result.get(i).getName(); cityAdapter = new ArrayAdapter&lt;String&gt;(Address.this, android.R.layout.simple_spinner_item, newCities); cityAdapter .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); s_city.setAdapter(cityAdapter); s_city.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView&lt;?&gt; arg0, View arg1, int arg2, long arg3) { //Log.d("item", newCities[arg2]); new getAreasInCity(newCities[arg2]).execute("d"); } @Override public void onNothingSelected(AdapterView&lt;?&gt; arg0) { // TODO Auto-generated method stub } }); } @Override protected List&lt;City&gt; doInBackground(String... params) { return City.getAllCities(); } } class getAreasInCity extends AsyncTask&lt;String, Integer, List&lt;Area&gt;&gt; { City city; public getAreasInCity(String cityName) { city = City.getCity(cityName); } @Override protected void onPostExecute(List&lt;Area&gt; result) { super.onPostExecute(result); if(result == null) Log.d("area size = ", "null"); else Log.d("area size = ", result.size()+""); String newArea[] = new String[result.size()]; for (int i = 0; i &lt; result.size(); i++) newArea[i] = result.get(i).getName(); areaAdapter = new ArrayAdapter&lt;String&gt;(Address.this, android.R.layout.simple_spinner_item, newArea); areaAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); if(s_area != null){ Log.d("here","saaallllllllllllllllllllll"); areaAdapter.notifyDataSetChanged(); s_area.setAdapter(areaAdapter); } else Log.d("here ", "asedsssssssssssssss"); } @Override protected List&lt;Area&gt; doInBackground(String... params) { return Area.getAreasInCity(city.getID()); } } } </code></pre>
    singulars
    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.
 

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