Hello,
I am trying (as many are doing) to populate a 2nd spinner out of the
first spinner selected item like this:
//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();
}
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: String selectedItemString = (String)
s2.getSelectedItem();
I could get an object on selected item but not the actual String
value.
anyone could help?
thanks a lot
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---