0

データベースから入力されたスピナーがあります。これは Web サービスから取得されるため、値をハードコーディングすることはできません。

スピナーは、ユーザーが入力して保存するフォームの一部であり、戻って値を編集できるようにする必要があるため、選択した内容に基づいて自動入力しようとしています。

問題は、スピナーが常に選択するとは限らないことです。これは頻繁に発生します。これは、asynctask を使用してデータを非同期的にロードしていることが原因であり、データを取得するまでにスピナーがまだロードされていないためだと思います。たとえば、スピナー項目 4 がデータベースからプルされたことを示すログがありますが、スピナーには何も選択されていません。

ローダーがいつ完了したかを確認して、リスト内の関連項目を入力 (つまり、選択) できるようにする最善の方法は何ですか?

4

1 に答える 1

0

load finished メソッドの最後に呼び出しを入れて、

@Override
    public void onLoadFinished(Loader<Cursor> aLoader, Cursor aCursor) {
        int id = aLoader.getId();

        Loader<Cursor> cursorLoader = null;
        switch (id) {
            mAdapter.swapCursor(aCursor);
        }
        if (inEditMode) {
            fillInValues();
        }
    }
于 2012-05-25T08:01:44.877 に答える