Shaz
Shaz

Reputation: 55

Spinner Android adapter in main Activity

Trying to simply get a Spinner going in my Application but the lines (commented out, the app works fine without these 2 lines) give me errors every time I try to start the Activity. I setup an Array in Strings.XML to be used in conjunction with the Spinner to view the data.

My XML contains a Spinner like so:

<Spinner
android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />

In Strings.XML I have my Array:

 <string-array name="spinner_array">
    <item>Mercury</item>
    <item>Venus</item>
    <item>Earth</item>
    <item>Mars</item>
    <item>Jupiter</item>
    <item>Saturn</item>
    <item>Uranus</item>
    <item>Neptune</item>
</string-array>

My Main Activity, 2 lines that are commented cause error.

public class BusPurchase extends Activity 
{


@Override
protected void onCreate(Bundle savedInstanceState) 
{
    Spinner spinner = (Spinner) findViewById(R.id.spinner);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
    R.array.spinner_array, android.R.layout.simple_spinner_item);       

    super.onCreate(savedInstanceState);

       //adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    //spinner.setAdapter(adapter);  
    setContentView(R.layout.activity_bus_purchase);         
}

Log Cat Displays this: http://chopapp.com/#cbz5r823

Upvotes: 0

Views: 735

Answers (2)

David C Adams
David C Adams

Reputation: 1973

You are getting a Null Pointer on your references to spinner (R.id.spinner) because you are trying to reference items in your layout before you inflate the layout. Try calling setContentView(R.layout.activity_bus_purchase); first thing in your onCreate() method and see if that doesn't fix it.

Upvotes: 0

ρяσѕρєя K
ρяσѕρєя K

Reputation: 132982

call setContentView before accessing views from xml layout as:

protected void onCreate(Bundle savedInstanceState) 
{
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_bus_purchase); // set layout here  
    Spinner spinner = (Spinner) findViewById(R.id.spinner);
   //..your code here

}

because you are trying to access views before setting layout for Activity

Upvotes: 1

Related Questions