spinner help

This is a discussion on spinner help within the Android App Developers forums, part of the Droid Apps category; I'm new to most of this and I'm trying to figure out how to have my app react to a spinner selection. I've seen tutorials ...

+ Reply to Thread
Page 1 of 2 1 2 LastLast
Results 1 to 10 of 13

Thread: spinner help

  1. Junior Droid
    Woodard2589's Avatar
    Member #
    32594
    Join Date
    Jan 2010
    Posts
    28
    Phone
    Enter Current Phone Model Here
    #1

    spinner help

    I'm new to most of this and I'm trying to figure out how to have my app react to a spinner selection. I've seen tutorials using setOnItemSelectedListener but i get errors with it.

    Heres my code:

    hellospinner.java
    package com.shanewoodard.hellospinner;

    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.AdapterView;
    import android.widget.ArrayAdapter;
    import android.widget.Spinner;
    import android.widget.Toast;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.AdapterView.OnItemSelectedListener;

    public class HelloSpinner extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Spinner hubSpinner = (Spinner) findViewById(R.id.myspinner);

    ArrayAdapter adapter = ArrayAdapter.createFromResource( this, R.array.colors , android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.s imple_spinner_dropdown_item);

    hubSpinner.setAdapter(adapter);


    }


    }
    main.xml
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    androidrientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />
    <Spinner
    android:id="@+id/myspinner"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:drawSelectorOnTop="true"
    />

    </LinearLayout>
    arrays.xml
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    <string-array name="colors">
    <item>Red</item>
    <item>Blue</item>
    <item>White</item>
    <item>Yellow</item>
    <item>Black</item>
    <item>Green</item>
    <item>Purple</item>
    <item>Orange</item>
    <item>Grey</item>
    </string-array>
    </resources>
    And this is the code i tried using:
    Spinner s = (Spinner) findViewById(R.id.myspinner);
    s.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){

    @Override
    public void onItemSelected(AdapterView adapter, View v, int i, long lng) {
    //do something here
    }

    @Override
    public void onNothingSelected(AdapterView arg0) {
    //do something else
    }
    });
    can someone give me the exact code i need? if i don't see the code i can't quite figure it out yet, i'm better at reverse engineering it you could say.
  2. Sponsor
    DF Advertising
    Join Date
    Nov 2008
    Location
    DroidForums.net
     
     
     
     
  3. Droid Ninja
    iPirate's Avatar
    Member #
    19507
    Join Date
    Dec 2009
    Posts
    1,437
    Phone
    Droid
    #2
    what is the error? maybe a line #?
  4. Junior Droid
    Woodard2589's Avatar
    Member #
    32594
    Join Date
    Jan 2010
    Posts
    28
    Phone
    Enter Current Phone Model Here
    #3
    I get 3 errors when i add that code. Here they are:

    The method onItemSelected(AdapterView, View, int, long) of type new AdapterView.OnItemSelectedListener(){} must override or implement a supertype method


    The type new AdapterView.OnItemSelectedListener(){} must implement the inherited abstract method AdapterView.OnItemSelectedListener.onItemSelected( AdapterView<?>, View, int, long)


    View cannot be resolved to a type

    I've tried using Quick Fix to solve them, but it can't.
  5. Senior Droid
    SixStringTheory's Avatar
    Member #
    81359
    Join Date
    Jun 2010
    Posts
    129
    Phone
    DROID
    #4
    You want to make a new class to handle selection events that implements OnItemSelectedListener like this

    Code:
    public class MyOnItemSelectedListener implements OnItemSelectedListener {
    
        public void onItemSelected(AdapterView<?> parent, view, int pos, long id) {
          // Do something cool!
        }
    
        public void onNothingSelected(AdapterView<?> parent) {
          // Do nothing.
        }
    }
    and then add the listener to your spinner back in onCreate()

    Code:
    spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
    That will probably clear up all three errors
    Last edited by SixStringTheory; 08-26-2010 at 10:22 AM.
  6. Junior Droid
    Woodard2589's Avatar
    Member #
    32594
    Join Date
    Jan 2010
    Posts
    28
    Phone
    Enter Current Phone Model Here
    #5
    ok, this is what i have now:
    package com.shanewoodard.hellospinner;

    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ArrayAdapter;
    import android.widget.Spinner;
    import android.widget.Toast;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.AdapterView.OnItemSelectedListener;

    public class HelloSpinner extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Spinner hubSpinner = (Spinner) findViewById(R.id.myspinner);

    ArrayAdapter adapter = ArrayAdapter.createFromResource( this, R.array.colors ,
    android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.s imple_spinner_dropdown_item);

    Spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());


    hubSpinner.setAdapter(adapter);
    }

    public class MyOnItemSelectedListener implements OnItemSelectedListener {

    public void onItemSelected(AdapterView<?> parent, View v, int pos, long id) {
    // Do something cool!
    }

    public void onNothingSelected(AdapterView<?> parent) {
    // Do nothing.
    }
    }


    }

    and it tells me
    Cannot make a static reference to the non-static method setOnItemSelectedListener(AdapterView.OnItemSelect edListener) from the type AdapterView<SpinnerAdapter>
  7. Senior Droid
    SixStringTheory's Avatar
    Member #
    81359
    Join Date
    Jun 2010
    Posts
    129
    Phone
    DROID
    #6
    Spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());

    should be "hubspinner.setOnItem............."

    and I don't know if it's just copy/paste translation adding spaces buy there's a space after the "s" in simple_spinner_dropdown_item. Make sure that's not there in code

    Code:
    adapter.setDropDownViewResource(android.R.layout.s imple_spinner_dropdown_item);
  8. Junior Droid
    Woodard2589's Avatar
    Member #
    32594
    Join Date
    Jan 2010
    Posts
    28
    Phone
    Enter Current Phone Model Here
    #7
    Thanks! It works now
  9. Senior Droid
    SixStringTheory's Avatar
    Member #
    81359
    Join Date
    Jun 2010
    Posts
    129
    Phone
    DROID
    #8
    Great!

    Don't forge to check the Google Docs they have some good code examples.

    Spinner | Android Developers
  10. Junior Droid
    Woodard2589's Avatar
    Member #
    32594
    Join Date
    Jan 2010
    Posts
    28
    Phone
    Enter Current Phone Model Here
    #9
    another question. been trying to figure out how to figure out what the user selected. tried

    adapter.getPosition(hubSpinner)
    but it always returns -1. a few of the methods i tried returned long numbers that were different depending on the selection, but i couldnt figure out what to do with it, and cant figure out what i used again. any help?
  11. Senior Droid
    SixStringTheory's Avatar
    Member #
    81359
    Join Date
    Jun 2010
    Posts
    129
    Phone
    DROID
    #10
    Use "parent.getItemAtPosition(pos).toString()" in your onItemSelectedListener class. So it should look something like this. "tv" is a new TextView I made.

    Code:
    	public class MyOnItemSelectedListener implements OnItemSelectedListener {
    
    	    public void onItemSelected(AdapterView<?> parent,
    	        View view, int pos, long id) {
    	      tv.setText(parent.getItemAtPosition(pos).toString());
    	    }
    
    	    @SuppressWarnings("unchecked")
    		public void onNothingSelected(AdapterView parent) {
    	      // Do nothing.
    	    }
    	}

Sponsors

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Similar Threads

  1. Need help with simple "Spinner" used to play selected looped audio
    By Minaris in forum Android App Developers
    Replies: 0
    Last Post: 12-14-2009, 09:39 PM

Search tags for this page

adapterview cannot be resolved to a type

,

adapterview is a raw type

,
adapterview raw type
,
android adapterview is a raw type
,
android spinner cannot be resolved to a type
,
android spinner onitemselected
,
android spinner onitemselected example
,
android spinner selector
,
cannot make a static reference to the non-static method find
,

droid spinner

,
must implement the inherited abstract method adapterview.oni
,
onitemselected view can not be resoved
,

onitemselectedlistener cannot be resolved to a type

,
setonitemselectedlistener spinner android
,

spinner cannot be resolved to a type

,
spinner onnothingselected
,
spinner setonitemselectedlistener
,

the method onitemselected(adapterview, view, int, long) o

,
the method onnothingselected(adapterview) of type new ada
,

the type new adapterview.onitemselectedlistener(){} must imp

Click on a term to search our site for related topics.

Tags for this Thread