Android Spinner : Avoid onItemSelected calls during initialization
android, android-layout, android-spinner
Solution
spinner.setOnItemSelectedListener(this); // Will call onItemSelected() Listener.
So first time handle this with any Integer value
Example: Initially Take `int check = 0;`
public void onItemSelected(AdapterView<?> parent, View arg1, int pos,long id) {
if(++check > 1) {
TextView textView = (TextView) findViewById(R.id.textView1);
String str = (String) parent.getItemAtPosition(pos);
textView.setText(str);
}
}
You can do it with boolean value and also by checking current and previous positions. See here
Problem
I created an Android application with a `Spinner` and a `TextView`. I want to display the selected item from the Spinner's drop down list in the TextView. I implemented the Spinner in the `onCreate` method so when I'm running the program, it shows a value in the `TextView` (before selecting an item from the drop down list). I want to show the value in the TextView only after selecting an item from the drop down list. How do I do this? Here is my code: ``` import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.TextView; public class GPACal01Activity extends Activity implements OnItemSelectedListener { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Spinner spinner = (Spinner) findViewById(R.id.noOfSubjects); // Create an ArrayAdapter using the string array and a default spinner layout ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,R.array.noofsubjects_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); } public void onItemSelected(AdapterView<?> parent, View arg1, int pos,long id) { TextView textView = (TextView) findViewById(R.id.textView1); String str = (String) parent.getItemAtPosition(pos); textView.setText(str); } public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } } ```