2

データベースから入力しているスピナーがあります。リストからデフォルトで選択されているアイテムを選択したい。リスト(CursorAdapter)のどの項目の値が「DefaultAway」であるかを調べて、それを選択した値に設定する必要があります。

    Spinner away_team_spinner = (Spinner)findViewById(R.id.away_team_spinner);
    DatabaseHelper db = new DatabaseHelper(this);
    Cursor team_list = db.getTeams(p_game_level);
    startManagingCursor(team_list);

    String[] team_name = new String[]{colTeamName};
    int[] to = new int[]{android.R.id.text1};
    SimpleCursorAdapter adapter =
      new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, team_list, team_name, to );
    adapter.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item );
    away_team_spinner.setAdapter(adapter);

    //// HERE IS WHERE MY ERRORS START ////

    Log.i("NEW_GAME","Before set arrayadapter");
    CursorAdapter adapter_choose = (CursorAdapter)away_team_spinner.getAdapter();
    Log.i("NEW_GAME","Before set setSelection");
    away_team_spinner.setSelection(adapter_choose.getPosition("Default Away"));

これが、このWebサイトで検索して見つけた「解決策」です。ただし、CursorAdapterオブジェクトで「getPosition」を使用することはできません。ArrayAdapterを試しましたが、「Beforesetarrayadapter」のコメントエラーの後の行に「android.widget.SimpleCursorAdapterをandroid.widget.ArrayAdapterにキャストできません」と表示されます。私は何が間違っているのですか?ありがとう。

4

1 に答える 1

8

位置が見つかるまでforループを実行してから、アダプターの位置をそのように設定することを考えましたか? いくつかのコードを下書きしてからテストします。私は似たようなことをしています

これでうまくいきました。お楽しみください。

    int cpos = 0;

    for(int i = 0; i < simpleCursorAdapter.getCount(); i++){
      cursor.moveToPosition(i);
      String temp = cursor.getString((your column index, an int));
      if ( temp.contentEquals(yourString)){
        Log.d("TAG", "Found match");
        cpos = i;
        break;
      }
    }
    spinner.setSelection(cpos);
于 2012-08-19T05:07:36.640 に答える