Данные об устройстве Android не отображаются должным образом (данные не обновляются должным образом) - PullRequest
0 голосов
/ 22 декабря 2011

у меня три блесны spinnerone spinnerTow spinnerThree

Я хочу отображать данные из базы данных, если событие генерируется в соответствующий счетчик. Каждая вещь работает в движение. Но пробник с 3-м вращателем ... 3-й вращатель не обновляется должным образом со 2-м значением spinnerOne (нет проб с 1-м и 2-м вращателем)

Код, который я пробовал ..

  //-----1st spinner is working fine------(Problem only with 3rd spinner ita not updating properly)//     

      //------for storing data into second spinner----//
   SpinnerOne.setOnItemSelectedListener(new OnItemSelectedListener()
     {

        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) 
        {

            myDataBase.openDB();
            AdapterTwo.clear();

            long idi = id+1;
            Cursor cursor = myDataBase.getSecondDetails();

            if(cursor != null && cursor.getCount()>0)
            {
                cursor.moveToFirst();
                do
                {
                    long id1 = cursor.getLong(2);
                    if(id1 == idi)
                    {


                        AdapterTwo.add(cursor.getString(1));
                        AdapterTwo.notifyDataSetChanged();
                        //SpinnerTwo.setAdapter(AdapterTwo);


                    }
                }
                while(cursor.moveToNext());
            }
            SpinnerTwo.setAdapter(AdapterTwo);  
            myDataBase.close();

        }

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

        }

    });

     //----------for storing data into third spinner-------//
     final ArrayAdapter<String> AdapterTrhee = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item);
     SpinnerTwo.setOnItemSelectedListener(new OnItemSelectedListener()
     {

        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) 
        {
            myDataBase.openDB();
            AdapterThree.clear();
            long id1 = id+1;

            Cursor cursor = myDataBase.getThirdDetails();


            if(cursor != null && cursor.getCount()>0)
            {
                cursor.moveToFirst();
                do
                {
                    long id2 = cursor.getLong(2);

                    if(id1 == id2)
                    {
                        AdapterThree.add(cursor.getString(1));
                        AdapterThree.notifyDataSetChanged();
                        //SpinnerThree.setAdapter(cityAdapter);
                    }
                }
                while(cityCursor.moveToNext());
            }
            SpinnerThree.setAdapter(cityAdapter);
            myDataBase.closeDB();


        }

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


        }

    });

Я проверил с базой данных также все работает нормально. Запросы и все остальное правильно.

3-й счетчик также работает правильно с 1-м значением 1-го счетчика, но если я изменю значение 1-го счетчика, 3-й счетчик показывает неверные данные (2-й счетчик работает отлично)

...