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();
}
}
}