0

現在、simpleCursorAdaptorとカーソルを使用してスピナーにデータをロードしていますが、カーソルを単純な配列に変換し、代わりにこれを使用することをお勧めします(リストは短く静的であるため)。

これを行う最も簡単な方法は何ですか?

私のコードは現在:

    private void loadEmployeeList(){
    LoginDataHandler dataHandler = new LoginDataHandler(getContentResolver());
    Cursor data = dataHandler.activeEmployeeList();
    if (null!=data){

        SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
                android.R.layout.simple_spinner_item, 
                data, 
                new String[]{MyobiliseData.Columns_employees.NAME},
                new int[] { android.R.id.text1 }
                );

        // Attach the data to the spinner using an adaptor
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);

    }

}
4

4 に答える 4

1
ArrayList<String> mArrayList = new ArrayList<String>();
for(data.moveToFirst(); !data.isAfterLast(); data.moveToNext()) {
    mArrayList.add(data.getString(data.getColumnIndex(MyobiliseData.Columns_employees.NAME)));
}

これで、カーソルのデータの配列mArrayListがあるので、先に進むことができます。

于 2012-06-19T05:47:55.090 に答える
1

短く静的な場合は、DBから読み取って配列に変換するオーバーヘッドがいくらか大きくなるのではなく、strings.xmlに配列として配置し、その方法でアクセスすることを検討してください。

data.xml

<resources>
    <string-array name="States">
        <item>AL</item>
        <item>AK</item>
        <item>AR</item>
    </string-array>
</resources>

次に、スピナーに使用するには:

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
    getActivity(), R.array.States, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(R.layout.listlayout_black);
final Spinner states = (Spinner) v.findViewById(R.id.mbr_state_spinner);
states.setAdapter(adapter);
于 2012-06-19T05:57:22.277 に答える
0

どうぞ

ArrayList<String> list = new ArrayList<String>();
Cursor data = dataHandler.activeEmployeeList();

if (data.moveToFirst()) 
{
    do {
        list.add(data.getString(data.getColumnIndex(MyobiliseData.Columns_employees.NAME)));
       } while (data.moveToNext());
}
于 2012-06-19T05:48:58.070 に答える
0

次に、カーソルを繰り返し処理してデータをフェッチするためのロジックを作成する必要があります。カーソルから取得したこれらのデータを使用して配列を作成します。

于 2012-06-19T05:45:58.080 に答える