+ Reply to Thread
Results 1 to 2 of 2

Thread: how to use spinner

  1. #1
    Junior Member
    Join Date
    Jul 2012
    Posts
    12

    how to use spinner

    I am very new to android. I want to use 2 spinners in my application, one shows the countries list, when any country is selected the other spinner should show the list of cities of that country. when city is selected some action is performed. plz help me with some sample code. thanks in anticipation

  2. #2
    Junior Member
    Join Date
    Jun 2012
    Posts
    14
    Here is something what we can use to add options to spinner2 w.r.t to spinner 1.

    Code:
    public class Activity extends Activity implements View.OnClickListener
    {
        private Spinner spinner0, spinner1, spinner2, spinner3;
        private Button submit, cancel;
    
        private String country[], state[], city[], area[];
    
        Australia aus = new Australia();
    
        Object object;
    
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            spinner0 = (Spinner)findViewById(R.id.spinnerCountry);
            spinner1 = (Spinner)findViewById(R.id.spinnerQ1);
            spinner2 = (Spinner)findViewById(R.id.spinnerQ2);
            spinner3 = (Spinner)findViewById(R.id.spinnerQ3);
    
            submit = (Button)findViewById(R.id.btnSubmit);
            cancel = (Button)findViewById(R.id.btnCancel);
    
            submit.setOnClickListener(this);
            cancel.setOnClickListener(this);
    
            country = new String[] {"Select Country", "Australia", "USA", "UK", "New Zealand", "EU", "Europe", "China", "Hong Kong",
                                    "India", "Malaysia", "Canada", "International", "Asia", "Africa"};
    
    
            ArrayAdapter<String> adapter0 = new ArrayAdapter<String>(Activity.this, android.R.layout.simple_spinner_item, country);
            adapter0.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
            spinner0.setAdapter(adapter0);
            Log.i("AAA","spinner0");
    
            spinner0.setOnItemSelectedListener(new OnItemSelectedListener()
            {           
                @Override
                public void onItemSelected(AdapterView<?> arg0, View view1, int pos, long id)
                {
                    Log.i("AAA","OnItemSelected");
                    int loc;
                    loc = pos;
    
                    switch (loc)
                    {
                    case 1:
    
                        state = aus.getState();
                        object = aus;
    
                        Log.i("AAA","ArrayAdapter1");                   
                        ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(Activity.this, android.R.layout.simple_spinner_item, state);
                        adapter1.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
                        spinner1.setAdapter(adapter1);          Log.i("AAA","spinner1");
                        break;
    
                    default:
                        Log.i("AAA","default 0");
                        break;
                    }                               
                }       
    
                @Override
                public void onNothingSelected(AdapterView<?> arg1)
                {
                    Log.i("AAA","Nothing S0");
    
                }
            });
    
           spinner1.setOnItemSelectedListener(new OnItemSelectedListener()
           {
                @Override
                public void onItemSelected(AdapterView<?> arg0, View view1, int pos, long id) 
                {
                    Log.i("AAA","OnItemSelected S1");
                    int loc = pos;
                    switch(loc)
                    {
                        case 1:
                            Log.i("AAA","Australia");
                            if(object.equals(aus))
                            {
                                city = aus.getType(loc);
                            }
                            else
                            {
                                break;
                            }
    
    
                            ArrayAdapter<String> adapter = new ArrayAdapter<String>(Activity.this, android.R.layout.simple_spinner_item, city);
                            adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
                            spinner2.setAdapter(adapter);           Log.i("AAA","spinner2");
                            break;
    
                        default:
                                Log.i("AAA", "default 1");
                            break;
    
                    }
                }
                @Override
                public void onNothingSelected(AdapterView<?> arg0)
                {
                    Log.i("AAA","Nothing S1");              
                }
    
            }); 
    
           spinner2.setOnItemSelectedListener(new OnItemSelectedListener()
           {
    
            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1, int pos, long id)
            {
                int loc = pos;
                switch (loc)
                {
                case 1:
                    if(object.equals(aus))
                    {
                        area = aus.getTitle(loc);
                    }
    
                    ArrayAdapter<String> adapter = new ArrayAdapter<String>(Activity.this, android.R.layout.simple_spinner_item, area);
                    adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
                    spinner3.setAdapter(adapter);           Log.i("","spinner3");               
                    break;
    
                default:
                    break;
                }
    
            }
    
            @Override
            public void onNothingSelected(AdapterView<?> arg0) 
            {
                // TODO Auto-generated method stub          
            }
           });
    
        }// on-create
    
    
        @Override
        public void onClick(View v)
        {
            switch (v.getId())
            {
            case R.id.btnSubmit:
    
                break;
    
            case R.id.btnCancel:
                finish();
                break;
    
            default:
                break;
            }       
        }   
    }
    If you find this useful, then do give it up vote, so that others can find a good answer easily.

    For each Country, you have to create a class for it, to just add State, City & Area. So that it doesn't become a mesh at a single at single page.

+ Reply to Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts