[Hỏi] Về Navigation Drawer trong android – Cộng đồng Java Việt Nam | Java Việt Nam | Java SE, Java EE, Android, Spring Framework

PHP:

public class HomeFragment extends Fragment {
    private InDb inDb;
    private OutDb outDb;
    private ArrayList<Item> in;
    private ArrayList<Item> out;
    private ListView list;
    private ArrayAdapter<Item> adapter;
    private ProgressDialog dialog;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View root = inflater.inflate(R.layout.fragment_home, container, false);
        inDb = new InDb(getContext());
        outDb = new OutDb(getContext());
        list = (ListView) root.findViewById(R.id.list_item);
        in = new ArrayList<>(); // Lưu danh sách thu
        out = new ArrayList<>(); // Lưu danh sách chi
        initDialog();
        new GetDataFromDb().execute();
        return root;
    }

    // Hiển thị dialog khi lấy dữ liệu
    private void initDialog() {
        dialog = new ProgressDialog(getContext());
        dialog.setMessage("Đang tải dữ liệu...");
        dialog.setCancelable(false);
    }

    // Lấy dữ liệu từ Database rồi hiển thị lên listview
    private class GetDataFromDb extends AsyncTask<Void, Void, ArrayList<Item>> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            dialog.show();
        }

        @Override
        protected ArrayList<Item> doInBackground(Void... params) {
            Item item;
            int id;
            SQLiteDatabase sqlOut = outDb.getReadableDatabase();
            String queryOut = "select * from " + OutDb.TABLE_NAME;
            Cursor cursorOut = sqlOut.rawQuery(queryOut, null);
            SQLiteDatabase sqlIn = inDb.getReadableDatabase();
            String queryIn = "select * from " + InDb.TABLE_NAME;
            Cursor cursorIn = sqlIn.rawQuery(queryIn, null);
            if (cursorIn.moveToFirst()) { // Thu
                do {
                    id = Integer.parseInt(cursorIn.getString(0));
                    String cost = cursorIn.getString(1);
                    String type = cursorIn.getString(2);
                    String date = cursorIn.getString(3);
                    String note = cursorIn.getString(4);
                    item = new Item(cost, type, note, date, id);
                    in.add(item);
                    Log.i("IN DATA - HomeFragment", item.toString());
                } while (cursorIn.moveToNext());
            }
            if (cursorOut.moveToFirst()) { // Chi
                do {
                    id = Integer.parseInt(cursorOut.getString(0));
                    String cost = cursorOut.getString(1);
                    String type = cursorOut.getString(2);
                    String date = cursorOut.getString(3);
                    String note = cursorOut.getString(4);
                    item = new Item(cost, type, note, date, id);
                    out.add(item);
                    in.add(item);
                    Log.i("OUT DATA - HomeFragment", item.toString());
                } while (cursorOut.moveToNext());
            }
            cursorIn.close();
            cursorOut.close();
            return in;
        }

        @Override
        protected void onPostExecute(ArrayList<Item> data) {
            super.onPostExecute(data);
            dialog.dismiss();
            adapter = new ArrayAdapter<>(HomeFragment.this.getActivity(), android.R.layout.simple_list_item_1, in);
            list.setAdapter(adapter);
            adapter.notifyDataSetChanged();
        }
    }
}