Hi, Use OnTouchListener for spinner instead of using setOnItemSelectedListener. Spineer excutes its setOnItemSelectedListener in onCreate so you getting this problem.
On Fri, Dec 30, 2011 at 5:34 PM, vinitvikash <vinitvik...@gmail.com> wrote: > I have a problem on Android Spinner.In my application I created two > Spinner on main layout. 'State' Spinner and 'District' Spinner. All > the data on Spinner are stored in SQLite database. I want do display > list of 'District' on second spinner depending on selection of > particular 'State' in the first spinner. > Example: Suppose when I select Karnataka in the first spinner then > application first retrieve all the district from SQLite database > related to karnataka state and then it display on second Spinner. > > For this I do all the database activity correctly means creating two > table 'state' and 'district' in which one column in district table is > foreign key which is refereed to one of the primary key of 'state > table' > > db.execSQL("create table "+STATE_TABLE+" ("+ > STATE_ID+" integer primary key > autoincrement not null, "+ > STATE_NAME+" text"+")"); > > db.execSQL("create table "+DISTRICT_TABLE+" ("+DISTRICT_ID+ > " integer primary key autoincrement not > null,"+DISTRICT_NAME > +" text,"+STATE_ID+" integer, > FOREIGN KEY(" > +STATE_ID+") REFERENCES > "+STATE_TABLE > > +"("+STATE_ID+")"+")"); > > Now in the Activity Class: > > spinnerState = (Spinner)findViewById(R.id.spinner1); > spinnerDistrict = (Spinner)findViewById(R.id.spinner2); > stateList = new ArrayList<String>(); > districtList = new ArrayList<String>(); > **Suppose all the data are all ready stored in database.** > > Now I need to retrieve all the 'State' data from database and add it > in the statelist which is ArrayList. > > Cursor stateCursor = database.query(STATE_TABLE, new String[] > {STATE_ID, STATE_NAME}, > null, null, null, null, STATE_NAME); > stateCursor.moveToFirst(); > > if(! stateCursor.isAfterLast()){ > do{ > int id = stateCursor.getInt(0); > String stateName = stateCursor.getString(1); > stateList.add(stateName); > }while(stateCursor.moveToNext()); > } > stateCursor.close(); > after this I create one ArrayAdapter and put this state list into > this. > > spinnerState.setAdapter(new ArrayAdapter<String>(this, > android.R.layout.simple_spinner_item, stateList)); > Next i put the following code in the activity class: > > spinnerState.setOnItemSelectedListener(new > OnItemSelectedListener() { > @Override > public void onItemSelected(AdapterView<?> parent, > View v, > int pos, long id) { > > } > > @Override > public void onNothingSelected(AdapterView<?> arg0) { > // TODO Auto-generated method stub > } > }); > > **Now My problem is here:** > > 1. How I get the StateId for executing the select query for taking > all the district related to particular state. > 2. How the adepter will generate for District. > 3. where I put all these code. > > Here what I need creating the districtList after getting the value > from state Spinner. > > Similar Question which asked earlier in this website, what they do: > they already create two adapter for two spinner and then apply > setOnItemSelectedListener. > Please Help me because here my mind totally stop working. > I refer lot of book and website but not they even mention these type > of problem. > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to android-developers@googlegroups.com > To unsubscribe from this group, send email to > android-developers+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en -- Thanks and regards. Mani. -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en