2011-12-20 4 views
0

Я хотел отобразить свои данные в андроид-счетчике из базы данных.Показать данные в Spinner, Android

Я использовал два прядильника .. 2-й счетчик должен отражать один раз, когда выбран один элемент прядильщика, каждая вещь работает нормально..даты загружаются во второй счетчик, но не отображаются на 2-й счетчик, когда выбран пункт 2-го прядильника.

Spinner1 = (Spinner)findViewById(R.id.createProfileCitySpinnerId); 
Spinner2 = (Spinner)findViewById(R.id.createProfileStateSpinnerId); 

//for 1st spinner.....(working) 
final List<String> list1 = new ArrayList<String>(); 

ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this, 
       android.R.layout.simple_spinner_item,list1); 
Spinner1.setAdapter(adapter1); 

//for second spinner... 
final List<String> list2 = new ArrayList<String>(); 
Spinner1.setOnItemSelectedListener(new OnItemSelectedListener(){ 

    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) 
    { 
     if(//some condition using id) 
     {      
      list2.add(stateCursor.getString(1));         
     } 
    }  
    @Override 
    public void onNothingSelected(AdapterView<?> parent) 
    {      
    }  
}); 

//everything is working data is loading, but not display once item is selected on 2nd spinner 
ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,list2); 
stateSpinner.setAdapter(adapter2); 
+0

Вы можете оставить свой код? –

+0

Я отредактировал код, и добавление значения в spinner написано ниже – KKC

ответ

1

Необходимо добавить элемент непосредственно к адаптеру (не к списку2), ArrayAdapter сохраняет свои внутренние данные. Попробуйте этот код на вашем onItemSelected:

adapter2.add(stateCursor.getString(1)); 
adapter2.notifyDataSetChanged(); 
+0

Спасибо Gwa его работы. Большое спасибо. – KKC

+0

Без проблем @KKC, рад, что это помогло! Было бы неплохо, если бы вы отметили ответ как правильный, спасибо! – gwa

1

Вызов adapter2.notifyDataSetChanged();

, такие как

@Override 
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) 
    { 
     if(//some condition using id) 
     {      
      list2.add(stateCursor.getString(1)); 
      adapter2.notifyDataSetChanged();        
     } 
    } 

см http://developer.android.com/reference/android/widget/ArrayAdapter.html для получения дополнительной информации.

public void notifyDataSetChanged() Since: API Level 1 

Уведомляет присоединенные наблюдатель, что основные данные были изменены и любой View отражающего набор данных должен обновиться.

+0

Спасибо Willmel его работа. Thankyou очень – KKC