2012-03-14 4 views
1

Я заполняю Spinner с помощью SimplecursorAdapter. Как я могу добавить «Выбрать станцию ​​...» в качестве первого элемента?Android добавить «Выбрать станцию ​​...» в качестве первого элемента для Spinner

SimpleCursorAdapter adapter = new SimpleCursorAdapter (this, R.layout.stnacspinner_item, cspinner, new String[] {"_id"}, new int[] {R.id.stnacspinnertext}); 
     adapter.setDropDownViewResource(R.layout.stnacspinner_item); 
     sp.setAdapter(adapter); 

ответ

2

Может быть, вы можете переопределить метод GetCount, GetItem и getItemId от CursorAdapter, чтобы сделать это, что у вас есть еще один элемент ... Что-то вроде этого (не проверял мысль):

int getCount(){ 
    return super.getCount() + 1; 
} 

Object getItem(int position) { 
    if (position == 0) { 
     return "Select Station"; 
    } else { 
     return super.getItem(position - 1); 
    } 

} 
+0

Я пытаюсь. – user1143989

0

1) Создание ArrayList и и курсор привести в него, а затем создать адаптер массива и установить этот список для адаптера:

as.add(0, "select insurance"); 

Cursor cursorInsurance = this.dbH1.getReadableDatabase().query(
    "tablename", 
    new String[]{"column field..."}, 
    null, 
    null, 
    null, 
    null, 
    null); 

if(cursorInsurance!=null) { 
    if(cursorInsurance.moveToFirst()) { 
     do { 
     as.add(cursorInsurance.getString(2)); 
     } while(cursorInsurance.moveToNext()); 
    } 
} 

ArrayAdapter<String> adpInsurance=new ArrayAdapter<String>(context, android.R.layout.simple_spinner_item,as); 

adpInsurance.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
spInsurance.setAdapter(adpInsurance); 
spInsurance.setSelection(0); 

adpInsurance.notifyDataSetChanged(); 
Смежные вопросы