0
//MainActivity Details package com.yay_or_nay.www.yayornayv1; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.Toast; public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Spinner spinner = (Spinner) findViewById(R.id.spinner); // Create an ArrayAdapter using the string array and a default spinner layout ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.Categories_array, android.R.layout.simple_spinner_item); // Specify the layout to use when the list of choices appears adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // Apply the adapter to the spinner spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(this); @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { String sSelected=parent.getItemAtPosition(position).toString(); Toast.makeText(this,sSelected, Toast.LENGTH_SHORT).show(); } @Override public void onNothingSelected(AdapterView<?> parent) { } 

}

XML file that i'm using

<?xml version="1.0" encoding="utf-8"?> 

<string-array name="Categories_array"> <item>Technology</item> <item>Science</item> <item>Fashion</item> <item>Photography</item> <item>Cars</item> <item>Lifestyle</item> <item>Food</item> </string-array> 

for example, what do I add to my main activity when I click "Technology" spinner array button? so it can create a new activity action? I'm trying to make it so, if a user clicks an option from the drop-down list from the spinner, it'll create a new instance.

`

3
  • Your question isn't clear Commented Feb 12, 2017 at 2:36
  • What do you mean by "new activity action?" here Commented Feb 12, 2017 at 3:05
  • I want to open a new screen/page based on what is selected from the spinner array in my code. Commented Feb 12, 2017 at 21:49

2 Answers 2

1
package project.com.spinnerclick; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.Toast; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class MainActivity extends AppCompatActivity private Spinner spinner; List<String> categoriesArray; Context mContext; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initializeUI(); } private void initializeUI() { //initialize context; mContext = this; //initialize list to pass it spinner adapter categoriesArray = new ArrayList<>(); // assign values to categories list categoriesArray = Arrays.asList(getResources().getStringArray(R.array.categories_array)); // initialize spinner component spinner = (Spinner) findViewById(R.id.spinner); //set spinner adapter spinner.setAdapter(new ArrayAdapter<>(mContext, android.R.layout.simple_spinner_dropdown_item, categoriesArray)); //setting in item select Listener to spinner items spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) { // you can open any activity by getting position of current // selected item and open the related activity to this position switch (position) { case 1: startActivity(new Intent(mContext, SecondActivity.class)); break; case 2: startActivity(new Intent(mContext, Main2Activity.class)); break; } //second solution by getting the clicked item value // and open activity according this value String selectItem = spinner.getItemAtPosition(position).toString(); Toast.makeText(mContext, selectItem, Toast.LENGTH_SHORT).show(); } @Override public void onNothingSelected(AdapterView<?> adapterView) { } }); } } 

and here is spinner values in XML

 <resources> <string name="app_name">SpinnerClick</string> <string-array name="categories_array"> <item>select Item</item> <item>Technology</item> <item>Science</item> <item>Fashion</item> <item>Photography</item> <item>Cars</item> <item>Lifestyle</item> <item>Food</item> </string-array> </resources> 
Sign up to request clarification or add additional context in comments.

1 Comment

I'm having an error on this line: spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { It keeps asking "must declare abstract method" also having an error on mContext must be declared final?
0

Use spinner.getSelectedItem.toString() instead of parent.getItemAtPosition….

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.