Sei sulla pagina 1di 50

CÁC DẠNG BÀI TẬP MÔN ANDROID ÔN THI

Bài tập: Chuyển đổi năm dương lịch

MainActivity.java
package tdmu.bt13_ch2;

public class MainActivity extends Activity {


Button btnchuyendoi;
EditText txtnamduonglich;
TextView lblnamamlich;
@Override
protected void onCreate(Bundle SavedInstanceState) {
super.onCreate(saveInstanceState);
setContentView(R.layout.activity_main);
btnchuyendoi = (Button) findViewById(R.id.btnchuyendoi);
txtnamduonglich = (EditText) findViewById(R.id.txtnamduonglich);
lblnamamlich = (TextView) findViewById(R.id.lblnamamlich);
btnchuyendoi.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

1
// TODO Auto-generated method stub
if(kiemTra()) {
int Can, Chi, NamDuong;
NamDuong= Integer.parseInt(txtnamduonglich.getText() + "");
Can= NamDuong % 10;
Chi= NamDuong % 12;
String sCan = null, sChi=null;
switch (Can) {
case 0:
sCan="Canh";
break;
case 1:
sCan="Tân";
break;
case 2:
sCan="Nhâm";
break;
case 3:
sCan="Quý";
break;
case 4:
sCan="Giáp";
break;
case 5:
sCan="Ất";
break;
case 6:
sCan="Bính";
break;
case 7:
sCan="Đinh";
break;
case 8:
sCan="Mậu";
break;
case 9:
sCan="Kỷ";
break;
default:
break;
}
switch (Chi) {
case 0:
sChi="Thân";
break;
case 1:
sChi="Dậu";
break;
case 2:
sChi="Tuất";
break;
case 3:
sChi="Hợi";
break;
case 4:
sChi="Tý";
break;
case 5:

2
sChi="Sửu";
break;
case 6:
sChi="Dần";
break;
case 7:
sChi="Mẹo";
break;
case 8:
sChi="Thìn";
break;
case 9:
sChi="Tỵ";
break;
case 10:
sChi="Ngọ";
break;
case 11:
sChi="Mùi";
break;
default:
break;
}
lblnamamlich.setText(sCan + " " + sChi);
}
}
});
}

private boolean kiemTra() {


if(txtnamduonglich.getText().length()==0) {
lblnamamlich.setText("");
Toast.makeText(this, "Vui lòng nhập năm dương lịch",
Toast.LENGTH_LONG).show();
return false;
}
if(Integer.parseInt(txtnamduonglich.getText().toString()) < 1900) {
Toast.makeText(this, "Năm dương lịch không được nhỏ hơn 1900",
Toast.LENGTH_LONG).show();
return false;
}
return true;
}
}

3
Bài tập: Thống kê, tính tiền mua sách

4
KhachHang.java
package tdmu.bt15_ch2;

public class KhachHang {


private String tenKh;
private int slmua;
private boolean isVip;
public static final int GIA=20000;

public KhachHang()
{

public KhachHang(String tenKh,int slmua,boolean isVip)


{
this.tenKh=tenKh;
this.slmua=slmua;
this.isVip=isVip;
}

public String getTenKh() {


return tenKh;
}

public void setTenKh(String tenKh) {


this.tenKh = tenKh;
}

public int getSlmua() {


return slmua;
}

public void setSlmua(int slmua) {


this.slmua = slmua;
}

public boolean isVip() {


return isVip;
}

public void setVip(boolean isVip) {


this.isVip = isVip;
}

public double tinhThanhTien()


{
return (!isVip?slmua*GIA:slmua*GIA*0.9);
}
}

5
DanhSachKhachHang.java
package tdmu.bt15_ch2;

import java.util.ArrayList;

public class DanhSachKhachHang {


ArrayList<KhachHang>listKH=new ArrayList<KhachHang>();
public void addKhachHang(KhachHang kh){
listKH.add(kh);
}

public double tongDoanhThu(){


double tien = 0.0;
for(KhachHang kh:listKH)
{
tien += kh.tinhThanhTien();
}
return tien;
}

public int tongKhachHang(){


return listKH.size();
}

public int tongKhachHangVip(){


int s=0;
for(KhachHang kh:listKH)
{
if(kh.isVip())
s++;
}
return s;
}
}

MainActivity.java
package tdmu.bt15_ch2;

public class MainActivity extends Activity {


Button btntinhtt, btntiep, btnthongke;
ImageButton btnthoat;
EditText txttenkh, txtslsach, txttongsokh, txttongsokhvip, txttongdoanhthu;
TextView lblthanhtien;
CheckBox checkvip;
DanhSachKhachHang danhsach = new DanhSachKhachHang();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btntinhtt = (Button) findViewById(R.id.btntinhtt);
btntiep = (Button) findViewById(R.id.btntiep);
btnthongke = (Button) findViewById(R.id.btnthongke);
btnthoat= (ImageButton) findViewById(R.id.btnthoat);
txttenkh = (EditText) findViewById(R.id.txttenkh);
txtslsach= (EditText) findViewById(R.id.txtslsach);
txttongsokh = (EditText) findViewById(R.id.txttongsokh);

6
txttongsokhvip = (EditText) findViewById(R.id.txttongsokhvip);
txttongdoanhthu = (EditText) findViewById(R.id.txttongdoanhthu);
lblthanhtien = (TextView) findViewById(R.id.lblthanhtien);
checkvip =(CheckBox) findViewById(R.id.checkvip);
btntinhtt.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
TinhTien();
}
});
btntiep.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Tiep();
}
});
btnthongke.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ThongKe();
}
});
btnthoat.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Thoat();
}
});
}

private void TinhTien(){


KhachHang kh = new KhachHang();
kh.setTenKh(txttenkh.getText() + "");
kh.setSlmua(Integer.parseInt(txtslsach.getText() + ""));
kh.setVip(checkvip.isChecked());
lblthanhtien.setText(kh.tinhThanhTien() + "");
danhsach.addKhachHang(kh);
}

private void Tiep(){


txttenkh.setText("");
txtslsach.setText("");
lblthanhtien.setText("");
txttenkh.requestFocus();
}

private void ThongKe(){


txttongsokh.setText(danhsach.tongKhachHang() + "");
txttongsokhvip.setText(danhsach.tongKhachHangVip() + "");
txttongdoanhthu.setText(danhsach.tongDoanhThu() + "");

7
}

private void Thoat(){


AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle("Thông báo");
builder.setMessage("Bạn có chắc chắn thoát không?");
builder.setNegativeButton("Không", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.setPositiveButton("Có", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
builder.create().show();
}
}

Bài tập: Quản lý sách

activity_main.xml them_tac_gia.xml

8
xem_dstg view_detail

quan_ly_sach.xml

9
TacGia.java
package tdmu.bt6_ch3;

import java.io.Serializable;
import java.util.ArrayList;

public class TacGia implements Serializable{


String matg, tentg;
ArrayList<Sach> dssach;
public String getMatg() {
return matg;
}
public void setMatg(String matg) {
this.matg = matg;
}
public String getTentg() {
return tentg;
}
public void setTentg(String tentg) {
this.tentg = tentg;
}
public ArrayList<Sach> getDssach() {
return dssach;
}
public void setDssach(ArrayList<Sach> dssach) {
this.dssach = dssach;
}
public TacGia(String matg, String tentg) {
super();
this.matg = matg;
this.tentg = tentg;
this.dssach = new ArrayList<Sach>();
}
public TacGia() {
super();
this.dssach = new ArrayList<Sach>();
}
public void themSach(Sach s){
this.dssach.add(s);
s.setTg(this);
}
@Override
public String toString() {
return matg + " " + tentg;
}
}

10
Sach.java
package tdmu.bt6_ch3;

import java.io.Serializable;

public class Sach implements Serializable{


String maSach, tenSach;
String ngayXB;
TacGia tg;

public String getMaSach() {


return maSach;
}

public void setMaSach(String maSach) {


this.maSach = maSach;
}

public String getTenSach() {


return tenSach;
}

public void setTenSach(String tenSach) {


this.tenSach = tenSach;
}

public TacGia getTg() {


return tg;
}

public void setTg(TacGia tg) {


this.tg = tg;
}

public Sach(String maSach, String tenSach, String ngayXB) {


super();
this.maSach = maSach;
this.tenSach = tenSach;
this.ngayXB = ngayXB;
this.tg = new TacGia();

public String getNgayXB() {


return ngayXB;
}

public void setNgayXB(String ngayXB) {


this.ngayXB = ngayXB;
}

public Sach() {

this.tg = new TacGia();


}
11
@Override
public String toString() {
return maSach + " " + tenSach + " " + ngayXB ;
}
}

ThemTacGia.java
package tdmu.bt6_ch3;

public class ThemTacGia extends Activity {


EditText tentg;
Button btnxoa, btnluu;
ListView lvxemdstg;
SQLiteDatabase db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.them_tac_gia);
tentg = (EditText) findViewById(R.id.txtngayxb);
btnxoa = (Button) findViewById(R.id.btnback);
btnluu = (Button) findViewById(R.id.btnupdate);
lvxemdstg = (ListView) findViewById(R.id.lvxemdstg);

btnxoa.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
tentg.setText("");
}
});

btnluu.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(kiemTra()){
db = openOrCreateDatabase(MainActivity.dbname, MODE_PRIVATE,
null);
String sql = "insert into TacGia(tentacgia) values('" +
tentg.getText() + "')";
db.execSQL(sql);
db.close();
//tentg.setText("");
//tentg.requestFocus();
Toast.makeText(getApplication(), "Thêm thành công",
Toast.LENGTH_LONG).show();
}
}
});
}
}

12
XemDstgActivity.java
package tdmu.bt6_ch3;

public class XemDstgActivity extends Activity {


static ArrayList<TacGia> dstacgia = new ArrayList<TacGia>();
ArrayAdapter<TacGia> adapterTG;
ListView lvxemdstg;
Button btnhuy;
static TacGia tgSelected;
SQLiteDatabase db;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.xem_dstg);
lvxemdstg = (ListView) findViewById(R.id.lvxemdstg);
btnhuy = (Button) findViewById(R.id.btnthemsach);
loadTG();
lvxemdstg.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
Intent intent = new Intent(XemDstgActivity.this,
ViewDetailActivity.class);
startActivity(intent);
tgSelected = dstacgia.get(position);
}
});

btnhuy.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
}
});
lvxemdstg.setOnItemLongClickListener(new OnItemLongClickListener() {

@SuppressLint("NewApi") @Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
tgSelected = dstacgia.get(position);
AlertDialog.Builder builder = new
AlertDialog.Builder(XemDstgActivity.this, AlertDialog.THEME_HOLO_LIGHT);
builder.setTitle("Thông báo");
builder.setIcon(android.R.drawable.ic_dialog_alert);
builder.setMessage("Bạn có muốn xóa [" + tgSelected.getMatg() + " -
" + tgSelected.getTentg() + "] không?");
builder.setPositiveButton("Có", new
DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
13
// TODO Auto-generated method stub
db = openOrCreateDatabase(MainActivity.dbname,
MODE_PRIVATE, null);
String sql = "delete from TacGia where matacgia = " +
Integer.parseInt(tgSelected.getMatg());
db.execSQL(sql);
db.close();
loadTG();
Toast.makeText(getApplication(), "Đã xóa thành công",
Toast.LENGTH_LONG).show();
}
});

builder.setNegativeButton("Không", new
DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.cancel();
}
});

AlertDialog dialog = builder.create();


dialog.show();
return false;
}
});

public void loadTG(){


dstacgia.clear();
db = openOrCreateDatabase(MainActivity.dbname, MODE_PRIVATE, null);
Cursor c = db.query("TacGia", null, null, null, null, null, null);
c.moveToFirst();
while(!c.isAfterLast()){
dstacgia.add(new TacGia(c.getInt(0) +"", c.getString(1)));
c.moveToNext();
}
adapterTG = new ArrayAdapter<TacGia>(this, android.R.layout.simple_list_item_1,
dstacgia);
lvxemdstg.setAdapter(adapterTG);
}
}

ViewDetailActivity.java
package tdmu.bt6_ch3;

public class ViewDetailActivity extends Activity {


EditText matg, tentg;
Button btnback, btnupdate;
SQLiteDatabase db;

14
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_detail);
matg = (EditText) findViewById(R.id.txtmatg);
tentg = (EditText) findViewById(R.id.txtngayxb);
btnback = (Button) findViewById(R.id.btnback);
btnupdate = (Button) findViewById(R.id.btnupdate);

loadItem();

btnback.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(ViewDetailActivity.this,
MainActivity.class);
startActivity(intent);
}
});

btnupdate.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
db = openOrCreateDatabase(MainActivity.dbname, MODE_PRIVATE, null);
String sql = "update TacGia set tentacgia = '" + tentg.getText() +
"'" +
"where matacgia = " +
Integer.parseInt(matg.getText().toString());
db.execSQL(sql);
db.close();
Toast.makeText(getApplication(), "Cập nhật thành công",
Toast.LENGTH_LONG).show();
}
});
}
private void loadItem() {
tentg.setText(XemDstgActivity.tgSelected.getTentg().toString());
matg.setText(XemDstgActivity.tgSelected.getMatg().toString());
}
}

QuanLySachActivity.java
package tdmu.bt6_ch3;

public class QuanLySachActivity extends Activity {

ArrayList<TacGia> listTG = new ArrayList<TacGia>();


ArrayList<Sach> listS = new ArrayList<Sach>();
ArrayAdapter<TacGia> adapter;
ArrayAdapter<Sach> adapterS;
Spinner sptacgia;

15
EditText txttensach, txtngayxb;
Button btnngayxb, btnThemsach;
ListView lvdanhsach;
TacGia tgSelected;
SQLiteDatabase db;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.quan_ly_sach);
sptacgia = (Spinner)findViewById(R.id.sptacgia);
loadSpinnerTG();
lvdanhsach = (ListView)findViewById(R.id.lvdanhsach);
txttensach = (EditText)findViewById(R.id.txttensach);
txtngayxb = (EditText)findViewById(R.id.txtngayxb);
btnngayxb = (Button)findViewById(R.id.btnngayxb);
btnThemsach = (Button)findViewById(R.id.btnthemsach);
sptacgia.setOnItemSelectedListener(new OnItemSelectedListener() {

@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long
arg3) {
// TODO Auto-generated method stub
if(sptacgia.getSelectedItemPosition() != -1) {
tgSelected= (TacGia) sptacgia.getSelectedItem();
loadSach(tgSelected.getMatg().toString());
}

}
});
btnngayxb.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
Calendar c = Calendar.getInstance();
int ngay = c.get(c.DAY_OF_MONTH);
int thang = c.get(c.MONTH);
int nam = c.get(c.YEAR);
DatePickerDialog date_dialog = new
DatePickerDialog(QuanLySachActivity.this, new OnDateSetListener() {

@Override
public void onDateSet(DatePicker view, int year, int month, int
dayOfMonth) {
txtngayxb.setText(dayOfMonth + "-" + (month + 1) + "-"+ year);
}
}, nam, thang, ngay);
date_dialog.show();
}
});

btnThemsach.setOnClickListener(new OnClickListener() {

16
@Override
public void onClick(View arg0) {
if(kiemTra()) {
themSach();
loadSach(tgSelected.getMatg() + "");
txttensach.setText("");
txtngayxb.setText("");
txttensach.requestFocus();
}
}
});
}

public void loadSpinnerTG() {


listTG.clear();
db = openOrCreateDatabase(MainActivity.dbname, MODE_PRIVATE, null);
Cursor c = db.query("TacGia", null, null, null, null, null,null);
c.moveToFirst();
while (!c.isAfterLast()) {
listTG.add(new TacGia(c.getInt(0) + "", c.getString(1)));
c.moveToNext();
}
c.close();
db.close();
adapter = new ArrayAdapter<TacGia>(this, android.R.layout.simple_spinner_item,
listTG);
adapter.setDropDownViewResource(android.R.layout.select_dialog_singlechoice);
sptacgia.setAdapter(adapter);
}
private boolean kiemTra() {
if(txttensach.getText().length() == 0) {
Toast.makeText(this, "Vui lòng nhập tên sách", Toast.LENGTH_LONG).show();
txttensach.requestFocus();
return false;
}
else if(txtngayxb.getText().length() == 0) {
Toast.makeText(this, "Vui lòng chọn ngày xuất bản",
Toast.LENGTH_LONG).show();
txtngayxb.requestFocus();
return false;
}
return true;
}
public void loadSach(String idTG) {
listS.clear();
db = openOrCreateDatabase(MainActivity.dbname, MODE_PRIVATE, null);
Cursor c = db.query("Sach", null,"matg= ?", new String[] {idTG}, null,
null,null);
c.moveToFirst();
while (!c.isAfterLast()) {
listS.add(new Sach(c.getInt(0) + "", c.getString(1), c.getString(3)));
c.moveToNext();
}
c.close();
db.close();
adapterS = new ArrayAdapter<Sach>(this, android.R.layout.simple_list_item_1,
listS);
lvdanhsach.setAdapter(adapterS);

17
}
public void themSach() {

db = openOrCreateDatabase(MainActivity.dbname, MODE_PRIVATE, null);


String sql = "insert into Sach(tensach, matg, nxb) values('" +
txttensach.getText() + "'," + Integer.parseInt(tgSelected.getMatg().toString()) + ",'" +
txtngayxb.getText()
+ "')";
db.execSQL(sql);
db.close();
}
}

MainActivity.java
package tdmu.bt6_ch3;

public class MainActivity extends Activity {


SQLiteDatabase db = null;
public static String dbname = "QLSach.db";
Button btnthem, btnxemds, btnqlsach;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
createDB();
btnthem = (Button) findViewById(R.id.btnthemtg);
btnxemds = (Button) findViewById(R.id.btnxemdstg);
btnqlsach = (Button) findViewById(R.id.btnquanlysach);

btnthem.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(MainActivity.this, ThemTacGia.class);
startActivity(intent);
}
});
btnxemds.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(MainActivity.this,
XemDstgActivity.class);
startActivity(intent);
}
});
btnqlsach.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(MainActivity.this,
QuanLySachActivity.class);

18
startActivity(intent);
}
});
}

public SQLiteDatabase getDB(){


try{
db = openOrCreateDatabase(dbname, MODE_PRIVATE, null);
if(db != null){
String sqlTacGia = "create table TacGia(matacgia integer primary key
autoincrement, tentacgia text)";
db.execSQL(sqlTacGia);

String sqlSach = "create table Sach(masach integer primary key


autoincrement, tensach text, matg integer, nxb text, foreign key(matg) references
TacGia(matacgia) on delete cascade)";
db.execSQL(sqlSach);

db.setLocale(Locale.getDefault());
db.setVersion(1);

Toast.makeText(MainActivity.this, "Tạo CSDL thành công",


Toast.LENGTH_LONG).show();
}
}
catch (Exception e){
Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show();
}
return db;
}

public void createDB(){


if(db == null){
getDB();
}
}
}

19
Bài tập: Quản lý phòng ban

activity_cap_nhat_nv.xml activity_cap_nhat_pb.xml

20
activity_danhsach_nv.xml activity_danhsach_pb.xml

activity_them_nv.xml activity_them_pb.xml

21
custom_adapter_nv.xml custom_adapter_pb.xml

activity_main.xml

22
NhanVien.java
package com.example.bt30;

import java.io.Serializable;

public class NhanVien implements Serializable {

String id, tenNV, gioiTinh, ngaySinh;

public NhanVien() {
super();
}

public NhanVien(String id, String tenNV, String ngaySinh, String gioiTinh) {


super();
this.id = id;
this.tenNV = tenNV;
this.gioiTinh = gioiTinh;
this.ngaySinh = ngaySinh;
}

public String getId() {


return id;
}

public void setId(String id) {


this.id = id;
}

public String getTenNV() {


return tenNV;
}

public void setTenNV(String tenNV) {


this.tenNV = tenNV;
}

public String getGioiTinh() {


return gioiTinh;
}

public void setGioiTinh(String gioiTinh) {


this.gioiTinh = gioiTinh;
}

public String getNgaySinh() {


return ngaySinh;
}

public void setNgaySinh(String ngaySinh) {


this.ngaySinh = ngaySinh;
}

@Override
public String toString() {
return id + " " + tenNV + " " + ngaySinh;
}
}
23
PhongBan.java
package com.example.bt30;

import java.io.Serializable;

public class PhongBan implements Serializable {

String id, tenPhong;

public PhongBan() {
super();
}

public PhongBan(String id, String tenPhong) {


super();
this.id = id;
this.tenPhong = tenPhong;
}

public String getId() {


return id;
}

public void setId(String id) {


this.id = id;
}

public String getTenPhong() {


return tenPhong;
}

public void setTenPhong(String tenPhong) {


this.tenPhong = tenPhong;
}

@Override
public String toString() {
return id + " " + tenPhong ;
}
}

ThemNV.java
package com.example.bt30;

public class ThemNV extends Activity {

EditText txtTenNV, txtNgaySinh;


RadioGroup rgGioiTinh;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_them_nv);
txtTenNV = (EditText)findViewById(R.id.txtTenNV);
txtNgaySinh = (EditText)findViewById(R.id.txtNgaySinh);
rgGioiTinh = (RadioGroup)findViewById(R.id.rgGioiTinh);

24
Button btnTrove = (Button)findViewById(R.id.btnTrove_ThemNV);
Button btnLuuNV = (Button)findViewById(R.id.btnLuuNV);
ImageButton btnNgay = (ImageButton)findViewById(R.id.btnNgay);
btnNgay.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Calendar c = Calendar.getInstance();
int ngay = c.get(c.DAY_OF_MONTH);
int thang = c.get(c.MONTH);
int nam = c.get(c.YEAR);
DatePickerDialog date_dialog = new DatePickerDialog(ThemNV.this,
new OnDateSetListener() {

@Override
public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
txtNgaySinh.setText(arg3 +"-"+ (arg2 + 1) +"-"+ arg1);
}
} , nam, thang, ngay);
date_dialog.show();
}
});
btnLuuNV.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
if(kiemTra()) {
themNhanVien();
Intent intent = getIntent();
setResult(DanhSachNV.RESULT_CODE, intent);
finish();

}
});
btnTrove.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
}
});
}

private boolean kiemTra() {


if(txtTenNV.getText().length()==0) {
Toast.makeText(this, "Vui lòng nhập tên nhân viên",
Toast.LENGTH_LONG).show();
txtTenNV.requestFocus();
return false;
}
else if(txtNgaySinh.getText().length()==0) {
Toast.makeText(this, "Vui lòng chọn ngày sinh",
Toast.LENGTH_LONG).show();

25
txtNgaySinh.requestFocus();
return false;
}
return true;

}
public void themNhanVien() {

String gioiTinh = rgGioiTinh.getCheckedRadioButtonId() == R.id.rdNam ?


"Nam":"Nu";
SQLiteDatabase db = openOrCreateDatabase(MainActivity.dbname, MODE_PRIVATE,
null);
String sql = "insert into tblNhanVien(TenNV,NgaySinh,GioiTinh,Phong)
values('"+txtTenNV.getText()
+"','"+txtNgaySinh.getText()
+"','"+gioiTinh

+"',"+Integer.parseInt(DanhSachNV.pbSelected.getId()+"")+")";
db.execSQL(sql);
db.close();

}
}

ThemPB.java
package com.example.bt30;

public class ThemPB extends Activity {

EditText txtTenPB;
Button btnTrove, btnLuu;
SQLiteDatabase db;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_them_pb);
txtTenPB = (EditText)findViewById(R.id.txtTenPhong);
btnTrove = (Button)findViewById(R.id.btnTrove_themPB);
btnLuu = (Button)findViewById(R.id.btnLuuPB);
btnTrove.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
}
});

btnLuu.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(kiemTra()) {
themPhongBan();
Intent intent = getIntent();

26
setResult(DanhSachPB.RESULT_CODE, intent);
finish();
}
}
});
}

public void themPhongBan() {


db= openOrCreateDatabase(MainActivity.dbname, MODE_PRIVATE, null);
String sql = "insert into tblPhongBan(TenPhong)
values('"+txtTenPB.getText()+"')";
db.execSQL(sql);
db.close();
}
private boolean kiemTra() {
if(txtTenPB.getText().length()==0) {
Toast.makeText(this, "Vui lòng nhập tên phòng ban",
Toast.LENGTH_LONG).show();
txtTenPB.requestFocus();
return false;
}
else {
String tenPhong = txtTenPB.getText()+"";
for(PhongBan pb: DanhSachPB.arrPB) {
String tenpb= pb.getTenPhong();
if(tenPhong.trim().equalsIgnoreCase(tenpb.trim())) {
Toast.makeText(this, "Phòng "+ tenPhong +" đã tồn tại",
Toast.LENGTH_LONG).show();
txtTenPB.requestFocus();
return false;
}

}
}
return true;
}
}

DanhSachNV.java
package com.example.bt30;

public class DanhSachNV extends Activity {

static final int REQUEST_CODE = 100;


static final int RESULT_CODE = 120;
ArrayList<NhanVien> arrNV;
ArrayList<PhongBan> arrPB;
CustomAdapter_NV adapterNV;
ImageButton imgbtnThemNV;
ListView lvNhanVien;
Spinner spPhongBan;
static PhongBan pbSelected;
static NhanVien nvSelected;
SQLiteDatabase db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

27
setContentView(R.layout.activity_danh_sach_nv);
spPhongBan = (Spinner)findViewById(R.id.spPhongBan);
imgbtnThemNV = (ImageButton)findViewById(R.id.imgbtnThemNV);
loadSpinnerPB();
lvNhanVien = (ListView)findViewById(R.id.lvNhanVien);
spPhongBan.setOnItemSelectedListener(new OnItemSelectedListener() {

@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long
arg3) {
// TODO Auto-generated method stub
pbSelected = (PhongBan)spPhongBan.getSelectedItem();
if(spPhongBan.getSelectedItemPosition()==0) {
imgbtnThemNV.setVisibility(View.INVISIBLE);
loadDSNhanVien();
}
else {

imgbtnThemNV.setVisibility(View.VISIBLE);
loadDSNhanVien(pbSelected.getId()+"");

}
}
});
Button btnTrove = (Button)findViewById(R.id.btnTrove_NV);
btnTrove.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
finish();

}
});
imgbtnThemNV.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(DanhSachNV.this, ThemNV.class);
startActivityForResult(intent, REQUEST_CODE);
}
});
lvNhanVien.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long
arg3) {
// TODO Auto-generated method stub
Intent intent = new Intent(DanhSachNV.this, CapNhatNV.class);
startActivityForResult(intent, REQUEST_CODE);
nvSelected = (NhanVien) lvNhanVien.getItemAtPosition(arg2);

28
}
});
lvNhanVien.setOnItemLongClickListener(new OnItemLongClickListener() {

@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
nvSelected = (NhanVien) lvNhanVien.getItemAtPosition(arg2);
showDialog();
return false;
}
});

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == REQUEST_CODE)
if(resultCode == RESULT_CODE)
if(pbSelected.getId().toString()=="0") {
imgbtnThemNV.setVisibility(View.INVISIBLE);
loadDSNhanVien();
}
else
loadDSNhanVien(pbSelected.getId()+"");
}

public void loadSpinnerPB() {


arrPB = new ArrayList<PhongBan>();
arrPB.add(new PhongBan("0", "Tất cả"));
db = openOrCreateDatabase(MainActivity.dbname, MODE_PRIVATE, null);
Cursor c = db.query("tblPhongBan", null, null, null, null, null, null);
c.moveToFirst();
while(!c.isAfterLast()) {
arrPB.add(new PhongBan(c.getInt(0)+"", c.getString(1)));
c.moveToNext();
}
c.close();
db.close();
ArrayAdapter<PhongBan> adapterSpin = new ArrayAdapter<PhongBan>(this,
android.R.layout.simple_spinner_item, arrPB);

adapterSpin.setDropDownViewResource(android.R.layout.simple_list_item_single_choice);
spPhongBan.setAdapter(adapterSpin);
}
public void loadDSNhanVien(String IdPhongban) {

arrNV = new ArrayList<NhanVien>();


db = openOrCreateDatabase(MainActivity.dbname, MODE_PRIVATE, null);
Cursor c = db.query("tblNhanVien", null, "Phong= ?", new String[] {IdPhongban},
null, null, null);
c.moveToFirst();
while(!c.isAfterLast()) {

29
arrNV.add(new NhanVien(c.getInt(0)+"", c.getString(1), c.getString(2),
c.getString(3)));
c.moveToNext();
}
c.close();
db.close();
adapterNV = new CustomAdapter_NV(this, R.layout.custom_adapter_nv, arrNV);
lvNhanVien.setAdapter(adapterNV);
}
public void loadDSNhanVien() {
arrNV = new ArrayList<NhanVien>();
db = openOrCreateDatabase(MainActivity.dbname, MODE_PRIVATE, null);
Cursor c = db.query("tblNhanVien", null, null, null, null, null, null);
c.moveToFirst();
while(!c.isAfterLast()) {
arrNV.add(new NhanVien(c.getInt(0)+"", c.getString(1), c.getString(2),
c.getString(3)));
c.moveToNext();
}
c.close();
db.close();
adapterNV = new CustomAdapter_NV(this, R.layout.custom_adapter_nv, arrNV);
lvNhanVien.setAdapter(adapterNV);
}
public void showDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(DanhSachNV.this,
AlertDialog.THEME_HOLO_LIGHT);
builder.setTitle("Question?");
builder.setIcon(R.drawable.delete);
builder.setMessage("Bạn có muốn xóa "+ nvSelected.getTenNV()+" không?");
builder.setPositiveButton("Có", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
db= openOrCreateDatabase(MainActivity.dbname, MODE_PRIVATE, null);
String sql= "delete from tblNhanVien where MaNV="+
Integer.parseInt(nvSelected.getId()+"");
db.execSQL(sql);
db.close();
if(pbSelected.getId().toString()=="0")
loadDSNhanVien();
else
loadDSNhanVien(DanhSachNV.pbSelected.getId()+"");

}
});
builder.setNegativeButton("Không", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.cancel();

}
});
AlertDialog dialog = builder.create();
dialog.show();

30
}
}

DanhSachPB.java

package com.example.bt30;

public class DanhSachPB extends Activity {

CustomAdapter_PB adapterPB;
ListView lvPhongBan;
ImageButton imgbtnThemPB;
static ArrayList<PhongBan> arrPB;
static PhongBan pbSelected;
static final int REQUEST_CODE = 110;
static final int RESULT_CODE = 112;
SQLiteDatabase db;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_danh_sach_pb);
lvPhongBan = (ListView)findViewById(R.id.lvPhongBan);
imgbtnThemPB = (ImageButton)findViewById(R.id.imgbtnThemPB);
loadDSPhongBan();
Button btnTrove = (Button)findViewById(R.id.btnTrove_PB);
btnTrove.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
finish();

}
});
imgbtnThemPB.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

Intent intent = new Intent(DanhSachPB.this, ThemPB.class);


startActivityForResult(intent, REQUEST_CODE);

}
});

lvPhongBan.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long
arg3) {
// TODO Auto-generated method stub

Intent intent = new Intent(DanhSachPB.this, CapNhatPB.class);


startActivityForResult(intent, REQUEST_CODE );
pbSelected = (PhongBan) lvPhongBan.getItemAtPosition(arg2);

31
}
});

lvPhongBan.setOnItemLongClickListener(new OnItemLongClickListener() {

@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
pbSelected = (PhongBan) lvPhongBan.getItemAtPosition(arg2);
showDialog();
return false;
}
});
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == REQUEST_CODE) {
if(resultCode == RESULT_CODE) {
loadDSPhongBan();

}
}

public void loadDSPhongBan(){

arrPB = new ArrayList<PhongBan>();


SQLiteDatabase db = openOrCreateDatabase(MainActivity.dbname, MODE_PRIVATE,
null);
Cursor c = db.query("tblPhongBan", null, null, null, null, null, null);
c.moveToFirst();
while(!c.isAfterLast()) {
arrPB.add(new PhongBan(c.getInt(0)+"", c.getString(1)));
c.moveToNext();
}
c.close();
db.close();
adapterPB = new CustomAdapter_PB(this, R.layout.custom_adapter_pb, arrPB);
lvPhongBan.setAdapter(adapterPB);
}

public void showDialog() {


AlertDialog.Builder builder = new AlertDialog.Builder(DanhSachPB.this,
AlertDialog.THEME_HOLO_LIGHT);
builder.setTitle("Question?");
builder.setIcon(R.drawable.delete);
builder.setMessage("Bạn có muốn xóa "+ pbSelected.getTenPhong()+" không?");
builder.setPositiveButton("Có", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface arg0, int arg1) {

32
// TODO Auto-generated method stub
db= openOrCreateDatabase(MainActivity.dbname, MODE_PRIVATE, null);
String sql= "delete from tblPhongBan where MaPhong="+
Integer.parseInt(pbSelected.getId()+"");
db.execSQL(sql);
db.close();
loadDSPhongBan();
}
});
builder.setNegativeButton("Không", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.cancel();
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
}

CapNhatNV.java
package com.example.bt30;

public class CapNhatNV extends Activity {

EditText txtTenNV, txtNgaySinh;


RadioGroup rgGioiTinh;
RadioButton rbNam, rbNu;
SQLiteDatabase db;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cap_nhat_nv);
txtTenNV = (EditText)findViewById(R.id.txtHoTen_CN);
txtNgaySinh = (EditText)findViewById(R.id.txtNgaySinh_CN);
rgGioiTinh = (RadioGroup)findViewById(R.id.rgGioiTinh_CN);
rbNam= (RadioButton)findViewById(R.id.rdNam_CN);
rbNu= (RadioButton)findViewById(R.id.rdNu_CN);
loadNV();
ImageButton btnNgay = (ImageButton)findViewById(R.id.btnNgay_CN);
Button btnCapNhat = (Button)findViewById(R.id.btnCapNhatNV);
Button btnHuy = (Button)findViewById(R.id.btnHuyNV);
btnHuy.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
finish();
}
});
btnNgay.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {

33
// TODO Auto-generated method stub
Calendar c = Calendar.getInstance();
int ngay = c.get(c.DAY_OF_MONTH);
int thang = c.get(c.MONTH);
int nam = c.get(c.YEAR);
DatePickerDialog date_dialog = new DatePickerDialog(CapNhatNV.this,
new OnDateSetListener() {

@Override
public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
txtNgaySinh.setText(arg3 +"-"+ (arg2 + 1) +"-"+ arg1);
}
} , nam, thang, ngay);
date_dialog.show();
}
});
btnCapNhat.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(kiemTra()) {
capNhatNV();
Intent data = getIntent();
setResult(DanhSachNV.RESULT_CODE, data);
finish();
}

}
});
}

private boolean kiemTra() {


if(txtTenNV.getText().length()==0) {
Toast.makeText(this, "Vui lòng nhập tên nhân viên",
Toast.LENGTH_LONG).show();
txtTenNV.requestFocus();
return false;
}
else if(txtNgaySinh.getText().length()==0) {
Toast.makeText(this, "Vui lòng chọn ngày sinh",
Toast.LENGTH_LONG).show();
txtNgaySinh.requestFocus();
return false;
}
return true;
}

public void capNhatNV() {


String gioiTinh = rgGioiTinh.getCheckedRadioButtonId() == R.id.rdNam_CN ?
"Nam":"Nu";
int maNV = Integer.parseInt(DanhSachNV.nvSelected.getId().toString());
db = openOrCreateDatabase(MainActivity.dbname, MODE_PRIVATE, null);
String sql = "update tblNhanVien set TenNV= '"+txtTenNV.getText()
+"', NgaySinh= '"+txtNgaySinh.getText()
+"', GioiTinh= '"+gioiTinh
+"' where MaNV= "+ maNV;

34
db.execSQL(sql);
db.close();
}
public void loadNV() {
String tenNV = DanhSachNV.nvSelected.getTenNV()+"";
String ngaySinh = DanhSachNV.nvSelected.getNgaySinh()+"";
String gioiTinh = DanhSachNV.nvSelected.getGioiTinh()+"";
txtTenNV.setText(tenNV);
txtNgaySinh.setText(ngaySinh);
if(gioiTinh.trim().equalsIgnoreCase(rbNam.getText().toString().trim())) {
rbNam.setChecked(true);
}
else
rbNu.setChecked(true);
}
}

CapNhatPB.java
package com.example.bt30;

public class CapNhatPB extends Activity {

EditText txtTenPhong;
SQLiteDatabase db;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cap_nhat_pb);
txtTenPhong = (EditText)findViewById(R.id.txtTenPB_CN);
txtTenPhong.setText(DanhSachPB.pbSelected.getTenPhong().toString());
Button btnCapNhat = (Button)findViewById(R.id.btnCapNhatPB);
Button btnHuy = (Button)findViewById(R.id.btnHuyPB);
btnHuy.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
finish();

}
});
btnCapNhat.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(kiemTra()) {
capNhatPB();
Intent data = getIntent();
setResult(DanhSachPB.RESULT_CODE, data);
finish();
}
}
});
}

35
private boolean kiemTra() {

if(txtTenPhong.getText().length()==0) {
Toast.makeText(this, "Vui lòng nhập tên phòng ban",
Toast.LENGTH_LONG).show();
txtTenPhong.requestFocus();
return false;
}
else {
String tenPhong = txtTenPhong.getText()+"";
for(PhongBan pb: DanhSachPB.arrPB) {
String tenpb= pb.getTenPhong();
if(tenPhong.trim().equalsIgnoreCase(tenpb.trim())) {
Toast.makeText(this, tenPhong +" đã tồn tại",
Toast.LENGTH_LONG).show();
txtTenPhong.requestFocus();
return false;
}

}
}
return true;
}
public void capNhatPB() {
int maPhong = Integer.parseInt(DanhSachPB.pbSelected.getId().toString());
db = openOrCreateDatabase(MainActivity.dbname, MODE_PRIVATE, null);
String sql = "update tblPhongBan set TenPhong= '"
+ txtTenPhong.getText() +"' where MaPhong= "+ maPhong;
db.execSQL(sql);
db.close();
}
}

CustomAdapter_NV
package com.example.bt30;

public class CustomAdapter_NV extends ArrayAdapter<NhanVien>{

ArrayList<NhanVien> listNV = new ArrayList<NhanVien>();

public CustomAdapter_NV(Context context, int resource, ArrayList<NhanVien> objects) {


super(context, resource, objects);
// TODO Auto-generated constructor stub
this.listNV = objects;

}
@Override
public int getCount() {
// TODO Auto-generated method stub
return super.getCount();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
LayoutInflater inflater = (LayoutInflater)
getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.custom_adapter_nv, null);
TextView txtdisplay= (TextView)convertView.findViewById(R.id.txtTen);
36
TextView txtNgSinh= (TextView)convertView.findViewById(R.id.textView1);
ImageView image = (ImageView)convertView.findViewById(R.id.imageView1);
String id= listNV.get(position).getId().toString();
String ten= listNV.get(position).getTenNV().toString();
String ngSinh = listNV.get(position).getNgaySinh().toString();
txtdisplay.setText(id+" "+ten);
txtNgSinh.setText(ngSinh);
if(listNV.get(position).getGioiTinh().toString().trim().equalsIgnoreCase("Nam"))
image.setImageResource(R.drawable.nv_nam);
else
image.setImageResource(R.drawable.nv_nu);
return convertView;
}
}

CustomAdapter_PB
package com.example.bt30;

public class CustomAdapter_PB extends ArrayAdapter<PhongBan> {

ArrayList<PhongBan> listPB = new ArrayList<PhongBan>();


public CustomAdapter_PB(Context context, int resource, ArrayList<PhongBan> objects) {
super(context, resource, objects);
// TODO Auto-generated constructor stub
this.listPB= objects;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return super.getCount();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
LayoutInflater inflater =
(LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.custom_adapter_pb, null);
ImageView image = (ImageView)convertView.findViewById(R.id.imgPB);
TextView txtPB = (TextView)convertView.findViewById(R.id.txtPB);
txtPB.setText(listPB.get(position).toString());
image.setImageResource(R.drawable.light_room);
return convertView;
}
}

MainActivity.java
package com.example.bt30;

public class MainActivity extends Activity {

public static final String dbname= "QLNhanVien.db";


SQLiteDatabase db;
Button btnPhongban, btnNhanvien;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
37
taoDB();
btnPhongban = (Button)findViewById(R.id.btnPhongban);
btnNhanvien = (Button)findViewById(R.id.btnNhanvien);
btnPhongban.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent = new Intent(MainActivity.this, DanhSachPB.class);
startActivity(intent);
}
});

btnNhanvien.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(MainActivity.this, DanhSachNV.class);
startActivity(intent);
}
});
}

private void taoDB() {


db = openOrCreateDatabase(dbname, MODE_PRIVATE, null);
String sql;
sql = "create table tblPhongBan( MaPhong integer primary key autoincrement, "
+ "TenPhong text )";
db.execSQL(sql);
sql = "create table tblNhanVien( MaNV integer primary key autoincrement, "
+ "TenNV text, NgaySinh text, GioiTinh text,"
+ "Phong integer references tblPhongBan(MaPhong) on delete cascade )";
db.execSQL(sql);
sql= "insert into tblPhongBan(TenPhong) values('Phong to chuc')";
db.execSQL(sql);
sql= "insert into tblPhongBan(TenPhong) values('Phong ke toan')";
db.execSQL(sql);
sql= "insert into tblNhanVien(TenNV,NgaySinh,GioiTinh,Phong) values('Nguyen Minh
Thang','12-05-1989','Nam',1)";
db.execSQL(sql);
sql= "insert into tblNhanVien(TenNV,NgaySinh,GioiTinh,Phong) values('Tran Thi
Thanh Ngan','10-02-1989','Nu',1)";
db.execSQL(sql);
sql= "insert into tblNhanVien(TenNV,NgaySinh,GioiTinh,Phong) values('Le Tran
Thanh Tam','06-06-1989','Nam',2)";
db.execSQL(sql);
sql= "insert into tblNhanVien(TenNV,NgaySinh,GioiTinh,Phong) values('Vo Thi Ngoc
Thao','20-05-1989','Nu',2)";
db.execSQL(sql);
db.close();
}
}

Bài tập: Thêm, xóa, sửa một giao diện

38
MainActivity.java
package com.example.themxoasua_1giaodien;

public class MainActivity extends Activity {

SQLiteDatabase db;
String dbname = "QLTacGia.db";
EditText txtTen;
ListView lvTacGia;
ArrayList<TacGia> dsTG;
TacGia tgSelected;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtTen = (EditText)findViewById(R.id.txtTenTG);
lvTacGia = (ListView)findViewById(R.id.lvTacGia);
Button btnThem = (Button)findViewById(R.id.btnThem);
Button btnXoa = (Button)findViewById(R.id.btnXoa);
Button btnCapnhat = (Button)findViewById(R.id.btnCapnhat);
Button btnXoaTrang = (Button)findViewById(R.id.btnXoaTrang);
loadTacGia();
// taoDB();

btnXoaTrang.setOnClickListener(new OnClickListener() {

public void onClick(View arg0) {


txtTen.setText("");

}
});

39
lvTacGia.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long


arg3) {

tgSelected =(TacGia) lvTacGia.getItemAtPosition(arg2);


txtTen.setText(tgSelected.getTenTG()+"");
}
});
btnThem.setOnClickListener(new OnClickListener() {

public void onClick(View v) {


if(kiemTra())
{
db = openOrCreateDatabase(dbname, MODE_PRIVATE, null);
String sql = "insert into tblTacGia(TenTG)
values('"+txtTen.getText()+"')";
db.execSQL(sql);
db.close();
loadTacGia();
txtTen.setText("");
txtTen.requestFocus();
}

}
});
btnCapnhat.setOnClickListener(new OnClickListener() {

public void onClick(View arg0) {


if(kiemTra()) {
if(tgSelected != null) {
db = openOrCreateDatabase(dbname, MODE_PRIVATE,
null);
String sql = "update tblTacGia set TenTG=
'"+txtTen.getText()
+"' where MaTG= "+
Integer.parseInt(tgSelected.getMaTG()+"");
db.execSQL(sql);
db.close();
loadTacGia();
txtTen.setText("");
}
}

}
});
btnXoa.setOnClickListener(new OnClickListener() {

public void onClick(View v) {


if(tgSelected != null) {
db = openOrCreateDatabase(dbname, MODE_PRIVATE, null);
String sql = "delete from tblTacGia where MaTG= "+
Integer.parseInt(tgSelected.getMaTG()+"");
db.execSQL(sql);
db.close();
loadTacGia();
txtTen.setText("");

40
}
}

});

}
public void taoDB() {
db= openOrCreateDatabase(dbname, MODE_PRIVATE, null);
String sql;
sql = "create table tblTacGia(MaTG integer primary key autoincrement, TenTG
text)";
db.execSQL(sql);
sql = "insert into tblTacGia(TenTG) values('Ho Xuan Huong')";
db.execSQL(sql);
sql = "insert into tblTacGia(TenTG) values('Nguyen Du')";
db.execSQL(sql);
sql = "insert into tblTacGia(TenTG) values('Xuan Dieu')";
db.execSQL(sql);
db.close();

}
public void loadTacGia() {
dsTG = new ArrayList<TacGia>();
db= openOrCreateDatabase(dbname, MODE_PRIVATE, null);
Cursor c= db.query("tblTacGia", null, null, null, null, null, null);
c.moveToFirst();
while (!c.isAfterLast()) {
dsTG.add(new TacGia(c.getInt(0)+"", c.getString(1)));
c.moveToNext();
}
c.close();
db.close();
ArrayAdapter<TacGia> adapter = new ArrayAdapter<TacGia>(this,
android.R.layout.simple_list_item_1,dsTG);
lvTacGia.setAdapter(adapter);
}

private boolean kiemTra() {


if(txtTen.getText().length()==0) {
Toast.makeText(getApplication(), "Vui lòng nhập tên tác giả",
Toast.LENGTH_LONG).show();
txtTen.requestFocus();
return false;
}
return true;
}
}

TacGia.java
package com.example.themxoasua_1giaodien;

import java.io.Serializable;

public class TacGia implements Serializable {


public TacGia() {
super();
}
41
public TacGia(String maTG, String tenTG) {
super();
this.maTG = maTG;
this.tenTG = tenTG;
}

String maTG, tenTG;

public String getMaTG() {


return maTG;
}

public void setMaTG(String maTG) {


this.maTG = maTG;
}

public String getTenTG() {


return tenTG;
}

public void setTenTG(String tenTG) {


this.tenTG = tenTG;
}

@Override
public String toString() {
return tenTG ;
}
}

42
Bài tập: Thêm, xóa, sửa Menu

activity_main.xml activity_them_tac_gia.xml activity_cap_nhat_tg

MainActivity.java
package com.example.themxoasua_menu;

public class MainActivity extends Activity {

SQLiteDatabase db;
static String dbname = "TacGia.db";
ListView lvTacGia;
ArrayList<TacGia> dsTG;
static TacGia tgSelected;
static final int request_code=110;
static final int result_code=112;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lvTacGia = (ListView)findViewById(R.id.lvTacGia);
// taoDB();
loadTacGia();
registerForContextMenu(lvTacGia);
lvTacGia.setOnItemLongClickListener(new OnItemLongClickListener() {

public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2,


long arg3) {
tgSelected = (TacGia) lvTacGia.getItemAtPosition(arg2);
return false;
}
});
}
43
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {

super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.context_menu, menu);
}

@Override
public boolean onContextItemSelected(MenuItem item) {

int id = item.getItemId();
switch (id) {
case R.id.them:
Intent it= new Intent(MainActivity.this, ThemTacGia.class);
startActivityForResult(it, request_code);
return true;
case R.id.capnhat:
Intent intent = new Intent(MainActivity.this, CapNhatTG.class);
startActivityForResult(intent, request_code);
return true;
case R.id.xoa:
showDialog();
return true;

default:
return super.onContextItemSelected(item);

}
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == request_code)
if(resultCode == result_code)
loadTacGia();
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);

44
}
public void taoDB() {
db= openOrCreateDatabase(dbname, MODE_PRIVATE, null);
String sql;
sql = "create table tblTacGia(MaTG integer primary key autoincrement, TenTG
text)";
db.execSQL(sql);
sql = "insert into tblTacGia(TenTG) values('Ho Xuan Huong')";
db.execSQL(sql);
sql = "insert into tblTacGia(TenTG) values('Nguyen Du')";
db.execSQL(sql);
sql = "insert into tblTacGia(TenTG) values('Xuan Dieu')";
db.execSQL(sql);
db.close();
}
public void loadTacGia() {
dsTG = new ArrayList<TacGia>();
db= openOrCreateDatabase(dbname, MODE_PRIVATE, null);
Cursor c= db.query("tblTacGia", null, null, null, null, null, null);
c.moveToFirst();
while (!c.isAfterLast()) {
dsTG.add(new TacGia(c.getInt(0)+"", c.getString(1)));
c.moveToNext();
}
c.close();
db.close();
ArrayAdapter<TacGia> adapter = new ArrayAdapter<TacGia>(this,
android.R.layout.simple_list_item_1,dsTG);
lvTacGia.setAdapter(adapter);
}
public void showDialog() {
if(tgSelected != null) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this,
AlertDialog.THEME_HOLO_LIGHT);
builder.setMessage("Bạn có muốn xóa "+ tgSelected.getTenTG() +" không?"
);
builder.setTitle("Question?");
builder.setPositiveButton("Có", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface arg0, int arg1) {

db = openOrCreateDatabase(dbname, MODE_PRIVATE, null);


String sql = "delete from tblTacGia where MaTG= "+
Integer.parseInt(tgSelected.getMaTG()+"");
db.execSQL(sql);
db.close();
loadTacGia();
}
});
builder.setNegativeButton("Không", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.cancel();
}
});

45
AlertDialog dialog = builder.create();
dialog.show();
}
}
}

TacGia.java
package com.example.themxoasua_menu;

public class TacGia implements Serializable {

public TacGia() {
super();
}

public TacGia(String maTG, String tenTG) {


super();
this.maTG = maTG;
this.tenTG = tenTG;
}

String maTG, tenTG;

public String getMaTG() {


return maTG;
}

public void setMaTG(String maTG) {


this.maTG = maTG;
}

public String getTenTG() {


return tenTG;
}

public void setTenTG(String tenTG) {


this.tenTG = tenTG;
}

@Override
public String toString() {
return tenTG ;
}
}

ThemTacGia.java
package com.example.themxoasua_menu;

public class ThemTacGia extends Activity {

EditText txtTen;
SQLiteDatabase db;

46
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_them_tac_gia);
txtTen = (EditText)findViewById(R.id.txtTenTG);
Button btnTroVe = (Button)findViewById(R.id.btnTrove);
Button btnThem = (Button)findViewById(R.id.btnLuu);
btnTroVe.setOnClickListener(new OnClickListener() {

public void onClick(View arg0) {


finish();
}
});
btnThem.setOnClickListener(new OnClickListener() {

public void onClick(View v) {


if(kiemTra())
{
db = openOrCreateDatabase(MainActivity.dbname, MODE_PRIVATE,
null);
String sql = "insert into tblTacGia(TenTG)
values('"+txtTen.getText()+"')";
db.execSQL(sql);
db.close();
Intent data = getIntent();
setResult(MainActivity.result_code, data);
finish();
}
}
});
}

private boolean kiemTra() {


if(txtTen.getText().length()==0) {
Toast.makeText(getApplication(), "Vui lòng nhập tên tác giả",
Toast.LENGTH_LONG).show();
txtTen.requestFocus();
return false;
}
return true;
}
}

CapNhatTG.java
package com.example.themxoasua_menu;

public class CapNhatTG extends Activity {

EditText txtTen;
SQLiteDatabase db;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cap_nhat_tg);
txtTen = (EditText)findViewById(R.id.txtTenTG_CN);
txtTen.setText(MainActivity.tgSelected.getTenTG() + "");
47
Button btnTroVe = (Button)findViewById(R.id.btnTroveCn);
Button btnCapnhat = (Button)findViewById(R.id.btnCapnhat);
btnTroVe.setOnClickListener(new OnClickListener() {

public void onClick(View arg0) {


finish();
}
});
btnCapnhat.setOnClickListener(new OnClickListener() {

public void onClick(View v) {


if(kiemTra()) {
if(MainActivity.tgSelected != null) {
db = openOrCreateDatabase(MainActivity.dbname,
MODE_PRIVATE, null);
String sql = "update tblTacGia set TenTG=
'"+txtTen.getText()
+ "' where MaTG= " +
Integer.parseInt(MainActivity.tgSelected.getMaTG() + "");
db.execSQL(sql);
db.close();
Intent data = getIntent();
setResult(MainActivity.result_code, data);
finish();
}
}

}
});
}

private boolean kiemTra() {


if(txtTen.getText().length()==0) {
Toast.makeText(getApplication(), "Vui lòng nhập tên tác giả",
Toast.LENGTH_LONG).show();
txtTen.requestFocus();
return false;
}
return true;
}
}

48
Bài tập: Tính tiền điện

MainActivity.java
package com.example.tinhtiendien;

public class MainActivity extends Activity {

EditText editSoKWh_nay, editSoKWh_truoc, editTien;


Button btnTinhtien;
DecimalFormat df = new DecimalFormat("#,##0.00");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView txtShowGia = (TextView) findViewById(R.id.txtShow);
txtShowGia.setText("Từ 0 - 50KWh: 1549 \nTừ 51 - 100KWh: 1600 \nTừ 101 -
200KWh: 1858 \nTừ 201 KWh trở lên: 2340");
editSoKWh_truoc = (EditText)findViewById(R.id.editSoKWh_truoc);
editSoKWh_nay = (EditText)findViewById(R.id.editSoKWh_nay);
editTien =(EditText)findViewById(R.id.editTien);
editTien.setEnabled(false);
btnTinhtien = (Button)findViewById(R.id.btnTinhtien);
btnTinhtien.setOnClickListener(new OnClickListener() {

public void onClick(View arg0) {


if(kiemTra()) {

49
int thangTruoc =
Integer.parseInt(editSoKWh_truoc.getText()+"");
int thangNay = Integer.parseInt(editSoKWh_nay.getText()+"");
int soKWh = thangNay - thangTruoc;
double tienDien=0;
if(soKWh >=0 && soKWh <= 50)
tienDien = soKWh*1549;
else if(soKWh >=51 && soKWh <=100)
tienDien = soKWh*1600;
else if(soKWh>=101 && soKWh <= 200)
tienDien = soKWh*1858;
else
tienDien = soKWh*2340;
editTien.setText(df.format(tienDien));
}
}
});
}

private boolean kiemTra() {


if(editSoKWh_truoc.getText().length()==0) {
Toast.makeText(this, "Vui lòng nhập số KWh tháng trước",
Toast.LENGTH_LONG).show();
return false;
}
if(editSoKWh_nay.getText().length()==0) {
Toast.makeText(this, "Vui lòng nhập số KWh tháng này",
Toast.LENGTH_LONG).show();
return false;
}
else {
int thangTruoc = Integer.parseInt(editSoKWh_truoc.getText() + "");
int thangNay = Integer.parseInt(editSoKWh_nay.getText() + "");
if(thangNay<thangTruoc) {
Toast.makeText(this, "Số KWh tháng hiện tại phải lớn hơn Số KWh
tháng trước", Toast.LENGTH_LONG).show();
return false;
}
}
return true;
}
}

50

Potrebbero piacerti anche