0

私のプログラムでは、タブアクティビティを使用しています。リストビューにある1つのタブで、sqliteデータベースからそのリストビューにデータを取得しようとしました。コードにエラーはありませんが、リスト ビューが空です。フラグメントコードがあります:

public static class DummySectionFragment extends Fragment implements LoaderCallbacks<Cursor>{

    public static final String ARG_SECTION_NUMBER = "section_number";
    public DummySectionFragment() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.activity_tracker,
                container, false);
        View v = inflater.inflate(R.layout.activity_tracker,
                container, false);
        createList();
        db = new DB(act);
        db.open();
        String[] from = new String[] {DB.COLUMN_NAME, DB.COLUMN_TIME};
        int[] to = new int[] { R.id.tvTextName, R.id.tvText_time};

        Cursor cursor = db.getAllData();

        scAdapter = new SimpleCursorAdapter(getActivity(), R.layout.item, cursor, from, to, 0);
        lvData = (ListView) v.findViewById(R.id.lvData);
        lvData.setAdapter(scAdapter);
        return rootView;
    }

    public void createList(){
    }

    @Override
    public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void onLoadFinished(Loader<Cursor> arg0, Cursor arg1) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onLoaderReset(Loader<Cursor> arg0) {
        // TODO Auto-generated method stub

    }
}
4

1 に答える 1

0

LoaderCallbacks を実装するクラスを正しく使用していません。onCreateView() メソッド内で db 呼び出しを実行してカーソルを取得しようとしています。これは、LoaderCallbacks 実装の目的を完全に無効にします。

グーグルで調べて、これを適切に行う方法に関するチュートリアルを見つけてください。また、LoaderManager.LoaderCallbacks の公式 Android ドキュメントも参照してください

ここにあなたが始めるためのいくつかがあります:

http://www.androiddesignpatterns.com/2012/07/understanding-loadermanager.html http://www.grokkingandroid.com/using-loaders-in-android/

于 2014-04-04T17:16:33.197 に答える