I have an options page with 5 spinners. As the user is logged in and modifying their account options, I would like the spinner to load the user’s choice for the spinner. At the moment each spinner loads the first value in it’s adapter ‘Please Select’. That’s fine if the server is checked and the user hasn’t made a choice yet – but I’d like that to be decided based on the obvious conditions.
Is there a good way to do this? I’ve just finished the code for sending the spinner choices to the server and storing them alongside the appropriate user. So I know I need different PHP queries, that’s no problem. But how do I set the visible value for the spinner inside onCreate?
ageSpinner = (Spinner) findViewById(R.id.ageSpinner);
ageAdapter = ArrayAdapter.createFromResource
(this, R.array.ageArray, android.R.layout.simple_spinner_item);
ageAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
ageSpinner.setAdapter(ageAdapter);
ageSpinner.setTag("age");
ageSpinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
eduSpinner = (Spinner) findViewById(R.id.eduSpinner);
eduAdapter = ArrayAdapter.createFromResource
(this, R.array.eduArray, android.R.layout.simple_spinner_item);
eduAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
eduSpinner.setTag("edu");
eduSpinner.setAdapter(eduAdapter);
eduSpinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
maritalSpinner = (Spinner) findViewById(R.id.maritalSpinner);
maritalAdapter = ArrayAdapter.createFromResource
(this, R.array.maritalArray, android.R.layout.simple_spinner_item);
maritalAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
maritalSpinner.setTag("marital");
maritalSpinner.setAdapter(maritalAdapter);
maritalSpinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
nationalitySpinner = (Spinner) findViewById(R.id.nationalitySpinner);
nationalityAdapter = ArrayAdapter.createFromResource
(this, R.array.nationalityArray, android.R.layout.simple_spinner_item);
nationalityAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
nationalitySpinner.setTag("nationality");
nationalitySpinner.setAdapter(nationalityAdapter);
nationalitySpinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
public class MyOnItemSelectedListener implements OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parent,
View view, int pos, long id) {
if (pos != 0) {
param.add(new BasicNameValuePair(parent.getTag().toString(),
parent.getItemAtPosition(pos).toString()));
}
}
public void onNothingSelected(AdapterView parent) {
// Do nothing.
}
}
I used EditTexts linked to a CustomDialog to display the data. It works much better. I have AsyncTasks that load the data into the uneditable EditTexts onCreate and onSubmit. Here’s some related code:
public OnClickListener fieldListener = new OnClickListener() {
public void onClick(View v) {
FragmentManager fm = getSupportFragmentManager();
switch (v.getId()) {
case (0) :