Spinner-anzeigen erste Element text, während andere Element ausgewählt ist

Ich habe einen Spinner, die voll ist von einem SimpleCursorAdapter in der onResume () - Methode. Die Auswahl ist auch in onResume: spinner.setSelection(x).

Wenn ich eine andere Tätigkeit und gehen Sie dann zurück zu dieser Tätigkeit, der Spinner zeigt den text des ersten Elements, statt den text des ausgewählten Elements.

Wie kann ich dieses Problem beheben?

EDIT: Hier ist mein code:

@Override
public void onResume(){
    super.onResume();
    fillSpinner();
}

private void fillSpinner() {
    Db = new DbAdapter(this);
    Db.open();
    final Cursor cursor = Db.getCats(true,true);
    startManagingCursor(cursor);

    String[] from = new String[]{DbAdapter.KEY_NAME};
    int[] to = new int[]{android.R.id.text1};

    SimpleCursorAdapter adapter =
            new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, cursor, from, to);

    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    spinner.setAdapter(adapter);

    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
            cursor.moveToPosition(pos);
            spinnerval = cursor.getInt(cursor.getColumnIndexOrThrow(DbAdapter._ID));
            Log.d("spinnerval", spinnerval+"");
        }
        public void onNothingSelected(AdapterView<?> parent) {
        }
    });

    spinner.setSelection(0);
    int now = hour*60*60+minute*60;
    Log.d("fillSpinner","now="+now+" /"+now/60.0/60.0);
    cursor.moveToFirst();
    while(cursor.moveToNext()){
        int s = cursor.getInt(cursor.getColumnIndexOrThrow(DbAdapter.KEY_START));
        int e = cursor.getInt(cursor.getColumnIndexOrThrow(DbAdapter.KEY_END));
        if(e<s){
            if(now>s){
                e+=24*60*60;
            }
            else{ 
                s-=24*60*60;
            }               
        }
        if(s<=now&&e>now){
            spinner.setSelection(cursor.getPosition());
        }
    }


    Db.close();

    spinner.invalidate();

}

EDIT2: Screenshot:

Spinner-anzeigen erste Element text, während andere Element ausgewählt ist

  • Zeigen Sie Ihren code .
  • Hinzugefügt mein code und screenshots.
InformationsquelleAutor Yellos | 2012-08-28
Schreibe einen Kommentar