1

DB から入力されたアクティビティにスピナーがあり、アクティビティがエクストラでインテントを取得する場合、エクストラに従って選択されたスピナーからアイテムを設定したいと考えています。たとえば、Extra "CURR_NOTE_CATEGORY" があり、その値が 2 の場合、スピナーの 2 番目の項目を選択します。余分なものはありません - 通常のスピナーだけです。だから私はこのコードを持っています:

int curr_note_category;

ArrayAdapter<String> adapter;
NotesManager manager = new NotesManager(this);
ArrayList<Category> arrListCategories; 
ArrayList<String> arrListCategoriesString = new ArrayList<String>();
Spinner spCategories;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.add_edit_note);

    spCategories = (Spinner) findViewById(R.id.spCategories);

    if(getIntent().getExtras()!=null){
        // Get Extras
        curr_note_category = getIntent().getExtras().getInt("CURR_NOTE_CATEGORY");

        spCategories.setSelection(curr_note_category);

    }

    manager.getAllCategories();
    arrListCategories = manager.getAllCategories();

    for (int i = 0; i < arrListCategories.size(); i++) 
    {
        Category currCategory = arrListCategories.get(i);
        arrListCategoriesString.add(currCategory.getCategory_name().toString());            
    }

    adapter=new ArrayAdapter<String> (this, android.R.layout.simple_spinner_item, arrListCategoriesString);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spCategories.setAdapter(adapter);
    spCategories.setOnItemSelectedListener(spinnerListener);
}

通常のスピナーを取得していますが、インテント エクストラがある場合、選択されたアイテムはありません。では、どうすればそれができるのでしょうか?

4

1 に答える 1

2

スピナーセットの選択コードを後に入れてくださいsetOnItemSelectedListener();

adapter=new ArrayAdapter<String> (this, android.R.layout.simple_spinner_item, arrListCategoriesString);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spCategories.setAdapter(adapter);
spCategories.setOnItemSelectedListener(spinnerListener);

if(getIntent().getExtras()!=null)
{
    // Get Extras
    curr_note_category = getIntent().getExtras().getInt("CURR_NOTE_CATEGORY");

    spCategories.setSelection(curr_note_category);
}
于 2012-08-25T10:07:13.677 に答える