I am trying (as many are doing) to populate a 2nd spinner out of the
first spinner selected item like this:
Using java Syntax Highlighting
- //populate first spinner
- final Spinner s = (Spinner) findViewById(R.id.spinner);
- ArrayAdapter adapter = ArrayAdapter.createFromResource(
- this, R.array.universities,
- android.R.layout.simple_spinner_item);
- adapter.setDropDownViewResource
- (android.R.layout.simple_spinner_dropdown_item);
- s.setAdapter(adapter);
- // Initialization of the 2nd spinner
- String[] array = {"Select Building Here"};
- final Spinner s2 = (Spinner) findViewById(R.id.spinner2);
- ArrayAdapter<String> cadapter = new ArrayAdapter(this,
- android.R.layout.simple_spinner_item, array);
- cadapter.setDropDownViewResource
- (android.R.layout.simple_spinner_dropdown_item);
- s2.setAdapter(cadapter);
- // When user selects a university
- s2.setOnItemSelectedListener(new OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView<?> arg0, View arg1,
- int arg2, long arg3) {
- //Get the selected building
- String selectedItemString = (String) s2.getSelectedItem();
- System.out.println
- ("Building: !!!"+selectedItemString);
- }
- @Override
- public void onNothingSelected(AdapterView<?> arg0) {
- // TODO Auto-generated method stub
- }
- });
- // When user selects a university
- s.setOnItemSelectedListener(new OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView<?> arg0, View arg1,
- int arg2, long arg3) {
- //Get the selected university
- String selectedItemString = (String) s.getSelectedItem();
- System.out.println
- ("Uni: !!!"+selectedItemString);
- if(selectedItemString .equals(""))
- {
- // In case of an error so it won't crash
- nospinner();
- }
- else
- {
- // Find the table of the selected University dynamically
- finder(selectedItemString);
- }
- }
- @Override
- public void onNothingSelected(AdapterView<?> arg0) {
- // TODO Auto-generated method stub
- }
- });
- where finder() is
- protected void finder(String selectedItemString) {
- final Dbadapter db = new Dbadapter(this); // This creates an
- instance of the database in this class
- final Spinner s2 = (Spinner) findViewById(R.id.spinner2);
- // Access Database
- db.open();
- // Fix selected item to match the db
- selectedItemString = (selectedItemString).toLowerCase();
- selectedItemString = selectedItemString.replaceAll(" ","");
- // System.out.println("Uni: !!!!!!!!!!!! >>>>"+selectedItemString+"<<<<<<");
- // Call a function to return the rows of that university
- final Cursor cur = db.getAllTitles(selectedItemString);
- // Get Columns
- String[] columns = new String[]{"building"};
- SimpleCursorAdapter cadapter = new SimpleCursorAdapter(this,
- android.R.layout.simple_spinner_item, cur,
- columns, new int[] {android.R.id.text1});
- // Spinner Layout and population
- cadapter.setDropDownViewResource
- (android.R.layout.simple_spinner_dropdown_item);
- s2.setAdapter(cadapter);
- db.close();
- }
Parsed in 0.046 seconds, using GeSHi 1.0.8.4
whenever the user changes the selection of the first spinner it's
fine, whenever the changes are related to the 2nd spinner I get a
handler exception on this line:
Using java Syntax Highlighting
- String selectedItemString = (String)
- s2.getSelectedItem();
Parsed in 0.030 seconds, using GeSHi 1.0.8.4
I could get an object on selected item but not the actual String
value.
anyone could help?
thanks a lot



