1

If someone could help thx. I have created the spinner part but now whenever I click on the dropdown I need a new activity to open. I was confused where I need to put the if else/ switch case in the Spinner.

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); spinner = findViewById(R.id.spinner); flags = findViewById(R.id.flag); spinner.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, CountryData.countryNames)); spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { flags.setImageResource(CountryData.countryflag[spinner.getSelectedItemPosition()]); } @Override public void onNothingSelected(AdapterView<?> adapterView) { } }); 

1 Answer 1

1

I think You can do it like this:

import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; import androidx.appcompat.app.AppCompatActivity; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { Spinner spinner; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ArrayList<String> activityList = new ArrayList<>(); // list of string which will be added to Spinner activityList.add("Select Activity"); activityList.add("Activity 1"); activityList.add("Activity 2"); spinner = findViewById(R.id.spinner); spinner.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, activityList )); spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { Log.i("MyTag", "Item selected at position " + i); if (i==0) // check position of selected item and open activity { // do nothing } else if (i==1) { openActivity(NewActivity.class); } else { openActivity(NewActivitySecond.class); } } @Override public void onNothingSelected(AdapterView<?> adapterView) { } }); } private void openActivity(Class x) //funtion which opens activity { Intent intent = new Intent(this, x); startActivity(intent); } } 
Sign up to request clarification or add additional context in comments.

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.