Question

I'm currently on my first Spinner. But I kinda got stuck during the onItemSelectedListener, since I cannot implement it. I first tried to follow the method of CommonWares book but it would work - but my method now doesn't work either.

At first I tried to let my activity implement the AdapterView directly - but the only consequence was that eclipse told me that the interface AdapterView is not available and asked me to create it ... however I got the very same error now again.

public class Lunchplace extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mensa);
    Context c = getApplicationContext();

    Spinner dateSelection = (Spinner)findViewById(R.id.date);

    //ArrayAdapter<String> aa = new ArrayAdapter<String>(this, android.R.)
    // get all the little tidbits of extra informations
    Bundle extras = getIntent().getExtras();

    String location = extras.getString("Mensa");
    // this function will download the Lunchfile - if necessary
    Data lunchData = new XMLData(c);

    // set the header text
    TextView mensaname = (TextView)findViewById(R.id.header);
    mensaname.setText(location);

    // get the spin view out of the xml
    Spinner spin = (Spinner)findViewById(R.id.date);

    // attach it to an adapter
    ArrayAdapter adapter = ArrayAdapter.createFromResource(
            this, R.array.days, android.R.layout.simple_spinner_item);
    // I should be able to put a custom layout of the spinner in there.. I bet
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spin.setAdapter(adapter);


    spin.setOnClickListener(
             new  AdapterView.OnItemSelectedListener() {           

           @Override
           public void onItemSelected(AdapterView<?> parent, 
             View view, int position, long id) {
           }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }
             }
    );

    // set the current day of the week as the default selection
    spin.setSelection(Tools.getDayOfWeek());

    // get the tablelayout
    TableLayout tl = (TableLayout)findViewById(R.id.MenuTable);
    lunchData.getMenuforDay(c,tl,location);

    TextView counterTV = new TextView(c, null, R.style.MenuField);

    }
}

Does anybody have any Idea on how I can solve that problem?

Was it helpful?

Solution

There is nothing special with implementing the OnItemSelectedListener. Try smth like this:

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            if ("YourDayToHandle".equals(spinner.getSelectedItem())) {
                // do smth useful here
            }
        }

    public void onNothingSelected(AdapterView<?> parent) {}
});
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top