1

いくつかのオブジェクト (スピナー、トグル ビューなど) を処理するために拡張した BaseAdaptor があります。スピナーから選択した値を取得しようとしています。私の問題は、getSelectedItem() が常に最初の値 (インデックス 0) を返すことです。何が欠けているのかわからない。これが私のコードです。

GridView grid=(GridView)findViewById(R.id.grdMain);
AcmObjectBaseAdaptor ad = (AcmObjectBaseAdaptor) grid.getAdapter();
String year = "";
if (ad.getItem(0) instanceof Spinner){
    Spinner spinner = (Spinner) ad.getItem(0);
    year = spinner.getSelectedItem().toString();
    System.out.println("Selected: " + year);
}
4

1 に答える 1

1

スピナーに onItemSelectedListener を追加するとどうなるでしょうか?

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
         System.out.println("onItemSelected: " + position);
    }

    @Override
    public void onNothingSelected(AdapterView<?> parentView) {}
});
于 2011-12-27T00:09:27.577 に答える