manikanta g
manikanta g

Reputation: 308

How do i create spinner in android like select box in html with value and text

In my app all states are dynamically coming from API should post selected state_id but not state_name when I click on submit button.

public class SpinnerActivity extends Activity {

  private Spinner spinner1, spinner2;
  private Button btnSubmit;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    addItemsOnSpinner2();

  }
  // add items into spinner dynamically
  public void addItemsOnSpinner2() {

    spinner2 = (Spinner) findViewById(R.id.spinner2);
    List<String> list = new ArrayList<String>();
    JSONObject json = jsonParser.makeHttpRequest("http://eastendwebsolutions.com/wf/ws/", "GET", params);
    for(int i = 0; i<json.names().length(); i++){
        list.add( json.get(json.names().getString(i))));
    }
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_spinner_item, list);
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner2.setAdapter(dataAdapter);
  }


}

Upvotes: 0

Views: 605

Answers (2)

Hardy
Hardy

Reputation: 2606

Simply make an array of state_id and set it as per selected position of spinner

 String selected_id;
String[] state_idarray = Your array;
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent, View view,
            int position, long id) {
         selected_id = stateidarray[position];
        }
    }


});

Upvotes: 1

Anshul Tyagi
Anshul Tyagi

Reputation: 446

I think you need this :

    spin.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view,
                int position, long id) {
            country_position = position;
            if ((country_position == 0)) {
                //Show message to select country
            } else {
                if (!(country_position == 0)
                        ) {
                //  Perform your operation.
                }
            }
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {
        }
    });

Upvotes: 0

Related Questions