SlideShare a Scribd company logo
A7, StephanosTower,Eachamukku,Kakkanadu,Kochi
Android Application Development Training Tutorial
For more info visit
http://www.zybotech.in
A7, StephanosTower,Eachamukku,Kakkanadu,Kochi
JAVA
AddEmployee
publicclass AddEmployee extendsActivity{
EditText txtName;
EditText txtAge;
TextViewtxtEmps;
DatabaseHelperdbHelper;
SpinnerspinDept;
@Override
public voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.addemployee);
txtName=(EditText)findViewById(R.id.txtName);
txtAge=(EditText)findViewById(R.id.txtAge);
txtEmps=(TextView)findViewById(R.id.txtEmps);
spinDept=(Spinner)findViewById(R.id.spinDept);
}
@Override
publicvoid onStart()
{
try
{
super.onStart();
dbHelper=newDatabaseHelper(this);
txtEmps.setText(txtEmps.getText()+String.valueOf(dbHelper.getEmployeeCount()));
Cursor c=dbHelper.getAllDepts();
A7, StephanosTower,Eachamukku,Kakkanadu,Kochi
startManagingCursor(c);
//SimpleCursorAdapterca=new SimpleCursorAdapter(this,android.R.layout.simple_spinner_item,c,
new String []{DatabaseHelper.colDeptName},newint[]{android.R.id.text1});
SimpleCursorAdapterca=newSimpleCursorAdapter(this,R.layout.deptspinnerrow,c,newString []
{DatabaseHelper.colDeptName,"_id"},newint[]{R.id.txtDeptName});
//ca.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinDept.setAdapter(ca);
spinDept.setOnItemSelectedListener(newOnItemSelectedListener() {
publicvoid onItemSelected(AdapterView<?>parent,ViewselectedView,
int position,longid) {
// TODO Auto-generatedmethodstub
}
publicvoid onNothingSelected(AdapterView<?>arg0) {
// TODO Auto-generatedmethodstub
}
});
//never close cursor
}
catch(Exceptionex)
{
CatchError(ex.toString());
}
}
publicvoid btnAddEmp_Click(Viewview)
{
A7, StephanosTower,Eachamukku,Kakkanadu,Kochi
booleanok=true;
try
{
Spannable spn=txtAge.getText();
String name=txtName.getText().toString();
int age=Integer.valueOf(spn.toString());
int deptID=Integer.valueOf((int)spinDept.getSelectedItemId());
Employee emp=newEmployee(name,age,deptID);
dbHelper.AddEmployee(emp);
}
catch(Exceptionex)
{
ok=false;
CatchError(ex.toString());
}
finally
{
if(ok)
{
//NotifyEmpAdded();
Alerts.ShowEmpAddedAlert(this);
txtEmps.setText("Numberofemployees"+String.valueOf(dbHelper.getEmployeeCount()));
}
}
}
void CatchError(String Exception)
{
Dialog diag=newDialog(this);
A7, StephanosTower,Eachamukku,Kakkanadu,Kochi
diag.setTitle("AddnewEmployee");
TextViewtxt=newTextView(this);
txt.setText(Exception);
diag.setContentView(txt);
diag.show();
}
void NotifyEmpAdded()
{
Dialog diag=newDialog(this);
diag.setTitle("AddnewEmployee");
TextViewtxt=newTextView(this);
txt.setText("Employee AddedSuccessfully");
diag.setContentView(txt);
diag.show();
try {
diag.wait(1000);
} catch (InterruptedExceptione) {
// TODO Auto-generatedcatchblock
CatchError(e.toString());
}
diag.notify();
diag.dismiss();
}}
Alerts
publicclass Alerts {
publicstatic voidShowEmpAddedAlert(Contextcon)
{
A7, StephanosTower,Eachamukku,Kakkanadu,Kochi
AlertDialog.Builderbuilder=newAlertDialog.Builder(con);
builder.setTitle("AddnewEmployee");
builder.setIcon(android.R.drawable.ic_dialog_info);
DialogListnerlistner=newDialogListner();
builder.setMessage("Employee Addedsuccessfully");
builder.setPositiveButton("ok",listner);
AlertDialogdiag=builder.create();
diag.show();
}
publicstatic AlertDialogShowEditDialog(final Contextcon,final Employee emp)
{
AlertDialog.Builderb=newAlertDialog.Builder(con);
b.setTitle("Employee Details");
LayoutInflater li=LayoutInflater.from(con);
Viewv=li.inflate(R.layout.editdialog,null);
b.setIcon(android.R.drawable.ic_input_get);
b.setView(v);
final TextViewtxtName=(TextView)v.findViewById(R.id.txtDelName);
final TextViewtxtAge=(TextView)v.findViewById(R.id.txtDelAge);
final Spinnerspin=(Spinner)v.findViewById(R.id.spinDiagDept);
Utilities.ManageDeptSpinner(con,spin);
for(inti=0;i<spin.getCount();i++)
{
long id=spin.getItemIdAtPosition(i);
if(id==emp.getDept())
{
spin.setSelection(i,true);
A7, StephanosTower,Eachamukku,Kakkanadu,Kochi
break;
}
}
txtName.setText(emp.getName());
txtAge.setText(String.valueOf(emp.getAge()));
b.setPositiveButton("Modify",newOnClickListener() {
publicvoid onClick(DialogInterface dialog,intwhich) {
// TODO Auto-generatedmethodstub
emp.setName(txtName.getText().toString());
emp.setAge(Integer.valueOf(txtAge.getText().toString()));
emp.setDept((int)spin.getItemIdAtPosition(spin.getSelectedItemPosition()));
try
{
DatabaseHelperdb=new DatabaseHelper(con);
db.UpdateEmp(emp);
}
catch(Exceptionex)
{
CatchError(con, ex.toString());
}
}
});
b.setNeutralButton("Delete",new OnClickListener(){
publicvoid onClick(DialogInterface dialog,intwhich) {
// TODO Auto-generatedmethodstub
DatabaseHelperdb=new DatabaseHelper(con);
A7, StephanosTower,Eachamukku,Kakkanadu,Kochi
db.DeleteEmp(emp);
}
});
b.setNegativeButton("Cancel",null);
return b.create();
//diag.show();
}
static public voidCatchError(Context con, String Exception)
{
Dialog diag=newDialog(con);
diag.setTitle("Error");
TextViewtxt=newTextView(con);
txt.setText(Exception);
diag.setContentView(txt);
diag.show();
}
}
DatabaseDemo
publicclass DatabaseDemo extendsTabActivity {
DatabaseHelperdbHelper;
GridViewgrid;
TextViewtxtTest;
/** Calledwhenthe activity is first created.*/
@Override
public voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
A7, StephanosTower,Eachamukku,Kakkanadu,Kochi
SetupTabs();
}
@Override
public booleanonCreateOptionsMenu(Menumenu)
{
menu.add(1,1, 1, "Add Employee");
return true;
}
public booleanonOptionsItemSelected(MenuItemitem)
{
switch (item.getItemId())
{
//Add employee
case 1:
Intent addIntent=newIntent(this,AddEmployee.class);
startActivity(addIntent);
break;
}
super.onOptionsItemSelected(item);
return false;
}
void SetupTabs()
{
TabHost host=getTabHost();
TabHost.TabSpec spec=host.newTabSpec("tag1");
Intentin1=new Intent(this,AddEmployee.class);
spec.setIndicator("AddEmployee");
spec.setContent(in1);
A7, StephanosTower,Eachamukku,Kakkanadu,Kochi
TabHost.TabSpec spec2=host.newTabSpec("tag2");
Intentin2=new Intent(this,GridList.class);
spec2.setIndicator("Employees");
spec2.setContent(in2);
host.addTab(spec);
host.addTab(spec2);
}}
DataBaseHelper
publicclass DatabaseHelper extendsSQLiteOpenHelper{
static final String dbName="demoDB";
static final String employeeTable="Employees";
static final String colID="EmployeeID";
static final String colName="EmployeeName";
static final String colAge="Age";
static final String colDept="Dept";
static final String deptTable="Dept";
static final String colDeptID="DeptID";
static final String colDeptName="DeptName";
static final String viewEmps="ViewEmps";
publicDatabaseHelper(Contextcontext) {
super(context,dbName,null,33);
// TODO Auto-generatedconstructorstub
}
@Override
publicvoid onCreate(SQLiteDatabase db) {
// TODO Auto-generatedmethodstub
A7, StephanosTower,Eachamukku,Kakkanadu,Kochi
db.execSQL("CREATETABLE "+deptTable+" ("+colDeptID+" INTEGER PRIMARY KEY , "+
colDeptName+" TEXT)");
db.execSQL("CREATETABLE "+employeeTable+" ("+colID+" INTEGERPRIMARYKEY AUTOINCREMENT,
"+colName+" TEXT, "+colAge+" Integer,"+colDept+" INTEGERNOT NULL ,FOREIGN KEY ("+colDept+") REFERENCES
"+deptTable+" ("+colDeptID+"));");
db.execSQL("CREATETRIGGERfk_empdept_deptid" + " BEFORE INSERT "+" ON"+employeeTable+" FOR
EACH ROW BEGIN"+" SELECT CASE WHEN ((SELECT "+colDeptID+" FROM "+deptTable+" WHERE
"+colDeptID+"=new."+colDept+" ) ISNULL)"+" THEN RAISE (ABORT,'ForeignKeyViolation') END;"+ " END;");
db.execSQL("CREATEVIEW "+viewEmps+" ASSELECT "+employeeTable+"."+colID+" AS_id,"+
" "+employeeTable+"."+colName+","+ " "+employeeTable+"."+colAge+","+"
"+deptTable+"."+colDeptName+""+" FROM"+employeeTable+" JOIN"+deptTable+" ON
"+employeeTable+"."+colDept+" ="+deptTable+"."+colDeptID );
//Inserts pre-defineddepartments
InsertDepts(db);
}
@Override
publicvoid onUpgrade(SQLiteDatabase db,int oldVersion,intnewVersion) {
// TODO Auto-generatedmethodstub
db.execSQL("DROPTABLE IF EXISTS "+employeeTable);
db.execSQL("DROPTABLE IF EXISTS "+deptTable);
db.execSQL("DROPTRIGGERIF EXISTS dept_id_trigger");
db.execSQL("DROPTRIGGERIF EXISTS dept_id_trigger22");
db.execSQL("DROPTRIGGERIF EXISTS fk_empdept_deptid");
db.execSQL("DROPVIEW IFEXISTS "+viewEmps);
onCreate(db);
}
void AddEmployee(Employee emp)
{
SQLiteDatabase db= this.getWritableDatabase();
A7, StephanosTower,Eachamukku,Kakkanadu,Kochi
ContentValuescv=newContentValues();
cv.put(colName,emp.getName());
cv.put(colAge, emp.getAge());
cv.put(colDept,emp.getDept());
//cv.put(colDept,2);
db.insert(employeeTable,colName,cv);
db.close();
}
int getEmployeeCount()
{
SQLiteDatabase db=this.getWritableDatabase();
Cursor cur= db.rawQuery("Select*from "+employeeTable,null);
int x= cur.getCount();
cur.close();
return x;
}
Cursor getAllEmployees()
{
SQLiteDatabase db=this.getWritableDatabase();
//Cursor cur= db.rawQuery("Select"+colID+" as_id , "+colName+","+colAge+" from
"+employeeTable,newString[]{});
Cursor cur= db.rawQuery("SELECT * FROM "+viewEmps,null);
return cur;
}
Cursor getAllDepts()
A7, StephanosTower,Eachamukku,Kakkanadu,Kochi
{
SQLiteDatabase db=this.getReadableDatabase();
Cursor cur=db.rawQuery("SELECT "+colDeptID+" as _id, "+colDeptName+" from"+deptTable,new
String [] {});
return cur;
}
void InsertDepts(SQLiteDatabase db)
{
ContentValuescv=newContentValues();
cv.put(colDeptID,1);
cv.put(colDeptName, "Sales");
db.insert(deptTable,colDeptID,cv);
cv.put(colDeptID,2);
cv.put(colDeptName,"IT");
db.insert(deptTable,colDeptID,cv);
cv.put(colDeptID,3);
cv.put(colDeptName,"HR");
db.insert(deptTable,colDeptID,cv);
db.insert(deptTable,colDeptID,cv);
}
publicString GetDept(intID)
{
SQLiteDatabase db=this.getReadableDatabase();
String[]params=new String[]{String.valueOf(ID)};
Cursor c=db.rawQuery("SELECT "+colDeptName+" FROM"+deptTable+" WHERE
"+colDeptID+"=?",params);
c.moveToFirst();
A7, StephanosTower,Eachamukku,Kakkanadu,Kochi
int index=c.getColumnIndex(colDeptName);
return c.getString(index);
}
publicCursor getEmpByDept(StringDept)
{
SQLiteDatabase db=this.getReadableDatabase();
String [] columns=newString[]{"_id",colName,colAge,colDeptName};
Cursor c=db.query(viewEmps,columns,colDeptName+"=?",newString[]{Dept},null, null,null);
return c;
}
public intGetDeptID(StringDept)
{
SQLiteDatabase db=this.getReadableDatabase();
Cursor c=db.query(deptTable,newString[]{colDeptID+" as _id",colDeptName},colDeptName+"=?",
new String[]{Dept},null,null,null);
//Cursor c=db.rawQuery("SELECT "+colDeptID+" as _id FROM "+deptTable+" WHERE
"+colDeptName+"=?",newString[]{Dept});
c.moveToFirst();
return c.getInt(c.getColumnIndex("_id"));
}
publicint UpdateEmp(Employee emp)
{
SQLiteDatabase db=this.getWritableDatabase();
ContentValuescv=newContentValues();
cv.put(colName,emp.getName());
cv.put(colAge,emp.getAge());
cv.put(colDept,emp.getDept());
return db.update(employeeTable,cv,colID+"=?",newString []{String.valueOf(emp.getID())});
A7, StephanosTower,Eachamukku,Kakkanadu,Kochi
}
publicvoid DeleteEmp(Employee emp)
{
SQLiteDatabase db=this.getWritableDatabase();
db.delete(employeeTable,colID+"=?",newString[]{String.valueOf(emp.getID())});
db.close();}}
DialogListener
publicclass DialogListnerimplementsandroid.content.DialogInterface.OnClickListener{
publicDialogListner()
{
}
publicvoid onClick(DialogInterface dialog,intwhich) {
// TODO Auto-generatedmethodstub
} }
Employee
publicclass Employee {
int _id;
String _name;
int _age;
int _dept;
publicEmployee(StringName,intAge,intDept)
{
this._name=Name;
this._age=Age;
this._dept=Dept;
A7, StephanosTower,Eachamukku,Kakkanadu,Kochi
}
publicEmployee(StringName,intAge)
{
this._name=Name;
this._age=Age;
}
publicint getID()
{
return this._id;
}
publicvoid SetID(intID)
{
this._id=ID;
}
publicString getName()
{
return this._name;
}
publicint getAge()
{
return this._age;
}
publicvoid setName(StringName)
{
this._name=Name;
}
publicvoid setAge(intAge)
{
A7, StephanosTower,Eachamukku,Kakkanadu,Kochi
this._age=Age;
}
publicvoid setDept(intDept)
{
this._dept=Dept;
}
publicString getDeptName(Contextcon,intDept)
{
return newDatabaseHelper(con).GetDept(Dept);
}
publicint getDept()
{
return this._dept;
}
}
GridList
publicclass GridListextendsActivity {
DatabaseHelperdbHelper;
static public GridViewgrid;
TextViewtxtTest;
SpinnerspinDept1;
/** Calledwhenthe activity is first created.*/
@Override
public voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gridview);
grid=(GridView)findViewById(R.id.grid);
A7, StephanosTower,Eachamukku,Kakkanadu,Kochi
txtTest=(TextView)findViewById(R.id.txtTest);
spinDept1=(Spinner)findViewById(R.id.spinDept1);
Utilities.ManageDeptSpinner(this.getParent(),spinDept1);
final DatabaseHelperdb=new DatabaseHelper(this);
try
{
spinDept1.setOnItemSelectedListener(newOnItemSelectedListener() {
publicvoid onItemSelected(AdapterView<?>arg0,Viewarg1,
int arg2, longarg3) {
// TODO Auto-generatedmethodstub
LoadGrid();
//sca.notifyDataSetChanged();
}
publicvoid onNothingSelected(AdapterView<?>arg0) {
// TODO Auto-generatedmethodstub
}
});
}
catch(Exceptionex)
{
txtTest.setText(ex.toString());
}
try
{
grid.setOnItemClickListener(newOnItemClickListener()
{
publicvoid onItemClick(AdapterView<?>parent,Viewv,int position,
A7, StephanosTower,Eachamukku,Kakkanadu,Kochi
long id) {
// TODO Auto-generatedmethodstub
try
{
SQLiteCursorcr=(SQLiteCursor)parent.getItemAtPosition(position);
String name= cr.getString(cr.getColumnIndex(DatabaseHelper.colName));
int age=cr.getInt(cr.getColumnIndex(DatabaseHelper.colAge));
String Dept= cr.getString(cr.getColumnIndex(DatabaseHelper.colDeptName));
Employee emp=newEmployee(name,age,db.GetDeptID(Dept));
emp.SetID((int)id);
AlertDialogdiag= Alerts.ShowEditDialog(GridList.this,emp);
diag.setOnDismissListener(newOnDismissListener() {
publicvoid onDismiss(DialogInterface dialog) {
// TODO Auto-generatedmethodstub
txtTest.setText("dismissed");
//((SimpleCursorAdapter)grid.getAdapter()).notifyDataSetChanged();
LoadGrid();
}
});
diag.show();
}
catch(Exceptionex)
{
Alerts.CatchError(GridList.this,ex.toString());
}
}
A7, StephanosTower,Eachamukku,Kakkanadu,Kochi
});
}
catch(Exceptionex)
{
}
}
@Override
public voidonStart()
{
super.onStart();
//LoadGrid();
}
public voidLoadGrid()
{
dbHelper=newDatabaseHelper(this);
try
{
//Cursor c=dbHelper.getAllEmployees();
Viewv=spinDept1.getSelectedView();
TextViewtxt=(TextView)v.findViewById(R.id.txtDeptName);
String Dept=String.valueOf(txt.getText());
Cursor c=dbHelper.getEmpByDept(Dept);
startManagingCursor(c);
String [] from=newString
[]{DatabaseHelper.colName,DatabaseHelper.colAge,DatabaseHelper.colDeptName};
int [] to=new int[] {R.id.colName,R.id.colAge,R.id.colDept};
SimpleCursorAdaptersca=newSimpleCursorAdapter(this,R.layout.gridrow,c,from,to);
A7, StephanosTower,Eachamukku,Kakkanadu,Kochi
grid.setAdapter(sca);
}
catch(Exceptionex)
{
AlertDialog.Builderb=newAlertDialog.Builder(this);
b.setMessage(ex.toString());
b.show();
}
} }
Utilities
publicclass Utilities{
static public voidManageDeptSpinner(Contextcontext,Spinnerview)
{
DatabaseHelperdbHelper=newDatabaseHelper(context);
Cursor c=dbHelper.getAllDepts();
//context.startManagingCursor(c);
//SimpleCursorAdapterca=new SimpleCursorAdapter(this,android.R.layout.simple_spinner_item,c,new
String [] {DatabaseHelper.colDeptName},newint[]{android.R.id.text1});
SimpleCursorAdapterca=newSimpleCursorAdapter(context,R.layout.deptspinnerrow,c,newString []
{DatabaseHelper.colDeptName,"_id"},newint[]{R.id.txtDeptName});
view.setAdapter(ca); } }
A7, StephanosTower,Eachamukku,Kakkanadu,Kochi
XML
AddEmployee
<?xml version="1.0" encoding="utf-8" ?>
- <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height ="wrap_content">
- <LinearLayout android:layout_width="fill_parent" android:layout_height ="wrap_content"
android:orientation="vertical">
<TextView android:layout_width="wrap_content" android:layout_height ="wrap_content"
android:text="Employee Name" />
<EditText android:layout_width="fill_parent" android:layout_height ="fill_parent"
android:id="@+id/txtName" android:autoText="false" />
<TextView android:layout_width="wrap_content" android:layout_height ="wrap_content"
android:text="Employee Age" />
<EditText android:layout_width="fill_parent" android:layout_height ="fill_parent"
android:id="@+id/txtAge" android:inputType="number" android:digits="0123456789"
android:singleLine="true" />
<TextView android:layout_width="wrap_content" android:layout_height ="wrap_content"
android:text="Employee Dept" />
<Spinner android:layout_width="fill_parent" android:layout_height ="fill_parent"
android:id="@+id/spinDept" />
<Button android:layout_width="wrap_content" android:layout_height ="wrap_content"
android:id="@+id/btnAdd" android:text="Add Employee" android:onClick="btnAddEmp_Click" />
<TextView android:layout_width="wrap_content" android:layout_height ="wrap_content"
android:text="Number of employees" android:id="@+id/txtEmps" />
</LinearLayout >
</ScrollView>
editdialog
<?xml version="1.0" encoding="utf-8" ?>
- <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height ="wrap_content"
android:orientation="vertical">
- <TableRow>
<TextView android:layout_width="fill_parent" android:layout_height ="wrap_content"
android:text="Name:" />
<EditText android:layout_width="fill_parent" android:layout_height ="wrap_content"
android:id="@+id/txtDelName" />
</TableRow>
- <TableRow>
<TextView android:layout_width="fill_parent" android:layout_height ="wrap_content"
android:text="Age:" />
<EditText android:layout_width="fill_parent" android:layout_height ="wrap_content"
android:id="@+id/txtDelAge" />
</TableRow>
- <TableRow>
<Spinner android:layout_width="fill_parent" android:layout_height ="wrap_content"
android:id="@+id/spinDiagDept" android:layout_span="2" />
</TableRow>
<TableRow />
</TableLayout>
A7, StephanosTower,Eachamukku,Kakkanadu,Kochi
Deptspinnerrow
<?xml version="1.0" encoding="utf-8" ?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height ="wrap_content">
<TextView android:layout_width="fill_parent" android:layout_height ="wrap_content"
android:id="@+id/txtDeptName" android:textColor="#000" />
<TextView android:layout_width="fill_parent" android:layout_height ="wrap_content"
android:id="@+id/txtDeptID" android:textColor="#000" />
</LinearLayout >
Gridrow
<?xml version="1.0" encoding="utf-8" ?>
- <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent">
- <TableRow>
<TextView android:layout_width="50px" android:layout_height ="wrap_content"
android:id="@+id/colName" android:padding="5px" android:layout_weight ="1" />
<TextView android:layout_width="50px" android:layout_height ="wrap_content"
android:id="@+id/colAge" android:padding="5px" android:layout_weight="1" />
<TextView android:layout_width="50px" android:layout_height ="wrap_content"
android:id="@+id/colDept" android:padding="5px" android:layout_weight ="1" />
</TableRow>
</TableLayout>
Gridview
<?xml version="1.0" encoding="utf-8" ?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height ="wrap_content" android:id="@+id/tab1">
- <TableLayout android:layout_width="fill_parent" android:layout_height ="fill_parent">
- <TableRow>
<Spinner android:layout_width="fill_parent" android:layout_height ="fill_parent"
android:id="@+id/spinDept1" android:layout_span="3" />
</TableRow>
- <TableRow>
<TextView android:layout_width="fill_parent" android:layout_height ="fill_parent"
android:text="Employee Name" android:layout_weight ="1" />
<TextView android:layout_width="fill_parent" android:layout_height ="fill_parent"
android:text="Employee Age" android:layout_weight="1" />
<TextView android:layout_width="fill_parent" android:layout_height ="fill_parent"
android:text="Department" android:layout_weight ="1" />
</TableRow>
</TableLayout>
<GridView android:id="@+id/grid" android:layout_width="fill_parent"
android:layout_height ="fill_parent" android:numColumns="1" android:stretchMode="columnWidth"
/>
<TextView android:layout_width="fill_parent" android:layout_height ="fill_parent"
android:text="Employee Age" android:id="@+id/txtTest" />
</LinearLayout >
A7, StephanosTower,Eachamukku,Kakkanadu,Kochi
listview
<?xml version="1.0" encoding="utf-8" ?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height ="wrap_content">
<ListView android:id="@+id/listEmps" android:layout_width="fill_parent"
android:layout_height ="fill_parent" android:text="A semi-random button" />
<TextView android:layout_width="fill_parent" android:layout_height ="wrap_content"
android:text="@string/hello" android:id="@+id/txt" />
</LinearLayout >
Main
<?xml version="1.0" encoding="utf-8" ?>
- <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height ="fill_parent"
android:id="@android:id/tabhost">
<TabWidget android:layout_width="fill_parent" android:layout_height ="wrap_content"
android:id="@android:id/tabs" />
<FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent"
android:layout_height ="fill_parent" android:paddingTop="60px" />
</TabHost>

More Related Content

What's hot (20)

PDF
node.js Module Development
Jay Harris
 
PDF
Test driven node.js
Jay Harris
 
PDF
BDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
Christian Baranowski
 
PDF
groovy databases
Paul King
 
PDF
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Tsuyoshi Yamamoto
 
PDF
Programming with ZooKeeper - A basic tutorial
Jeff Smith
 
PDF
Fun Teaching MongoDB New Tricks
MongoDB
 
PPTX
Unit testing pig
clintmiller1
 
PPT
Spring data iii
명철 강
 
PDF
Py spark cheat sheet by cheatsheetmaker.com
Lam Hoang
 
PPTX
第二讲 Python基礎
juzihua1102
 
PPTX
第二讲 预备-Python基礎
anzhong70
 
PDF
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
Takahiro Inoue
 
PDF
Testing multi outputformat based mapreduce
Ashok Agarwal
 
PDF
Bubbles & Trees with jQuery
Bastian Feder
 
PPTX
Implementing CQRS and Event Sourcing with RavenDB
Oren Eini
 
PPTX
Eddystone Beacons - Physical Web - Giving a URL to All Objects
Jeff Prestes
 
PDF
JRubyKaigi2010 Hadoop Papyrus
Koichi Fujikawa
 
PDF
AJUG April 2011 Cascading example
Christopher Curtin
 
PPTX
Swing database(mysql)
vishal choudhary
 
node.js Module Development
Jay Harris
 
Test driven node.js
Jay Harris
 
BDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
Christian Baranowski
 
groovy databases
Paul King
 
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Tsuyoshi Yamamoto
 
Programming with ZooKeeper - A basic tutorial
Jeff Smith
 
Fun Teaching MongoDB New Tricks
MongoDB
 
Unit testing pig
clintmiller1
 
Spring data iii
명철 강
 
Py spark cheat sheet by cheatsheetmaker.com
Lam Hoang
 
第二讲 Python基礎
juzihua1102
 
第二讲 预备-Python基礎
anzhong70
 
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
Takahiro Inoue
 
Testing multi outputformat based mapreduce
Ashok Agarwal
 
Bubbles & Trees with jQuery
Bastian Feder
 
Implementing CQRS and Event Sourcing with RavenDB
Oren Eini
 
Eddystone Beacons - Physical Web - Giving a URL to All Objects
Jeff Prestes
 
JRubyKaigi2010 Hadoop Papyrus
Koichi Fujikawa
 
AJUG April 2011 Cascading example
Christopher Curtin
 
Swing database(mysql)
vishal choudhary
 

Viewers also liked (9)

PPTX
Uml (unified modeling language)
nathanaelchandra
 
PPS
New Futures for Traditional Villages
sneapa
 
DOCX
Lori_Bittle_SME_BIO
Lori Bittle
 
DOCX
Darrell O'Quinn December 2016
Darrell O'Quinn
 
DOC
Mr. maherc.v Q.C_2
Maher Gad
 
PPTX
μελπομένη σπυροπούλου 1051519_κατερίνα_παππά_1051522
Μελπομένη Σπυροπούλου
 
PPTX
어느 HRD담당자가 아이와 교육적으로 노는 방법
dcjin
 
PPTX
What can cause the habitat to change
aya alshaer
 
PDF
Beyond Town Gown
sneapa
 
Uml (unified modeling language)
nathanaelchandra
 
New Futures for Traditional Villages
sneapa
 
Lori_Bittle_SME_BIO
Lori Bittle
 
Darrell O'Quinn December 2016
Darrell O'Quinn
 
Mr. maherc.v Q.C_2
Maher Gad
 
μελπομένη σπυροπούλου 1051519_κατερίνα_παππά_1051522
Μελπομένη Σπυροπούλου
 
어느 HRD담당자가 아이와 교육적으로 노는 방법
dcjin
 
What can cause the habitat to change
aya alshaer
 
Beyond Town Gown
sneapa
 
Ad

Similar to Java and xml (20)

DOCX
Android examples
Aravindharamanan S
 
PPTX
Unit - IV.pptx
VaishnaviGaikwad67
 
PPTX
Unit - IV (1).pptx
VaishnaviGaikwad67
 
PDF
SQLite Database Tutorial In Android
Android 5
 
PDF
Here is the company database for the problem--commen.pdf
fazilfootsteps
 
DOCX
Accessing data with android cursors
info_zybotech
 
DOCX
Accessing data with android cursors
info_zybotech
 
PDF
Here is the company database--comments can be addedD.pdf
fckindswear
 
DOCX
Android database tutorial
info_zybotech
 
DOCX
rdbms practical record
Shivaraju KoilaKonda
 
PDF
Dbms assignment 3(a) (1)
SwapnadipSahoo1
 
PPTX
android_databaseConnectivity_SQLite.pptx
lhonapadmayuky699
 
PDF
Cursor & Content Value.pdf
uttamrao7
 
PPTX
Database Concepts Team Project.pptx
LizSmith823201
 
PPT
Les02
Sudharsan S
 
PPT
Android SQLite database oriented application development
Kongu Engineering College, Perundurai, Erode
 
DOCX
Android App To Display Employee Details
Saikrishna Tanguturu
 
TXT
4sem dbms(1)
Karthik Sagar
 
PPTX
Chapter 3.pptx Oracle SQL or local Android database setup SQL, SQL-Lite, codi...
TAISEEREISA
 
TXT
base de datos ejemplo
Fabian Matamala
 
Android examples
Aravindharamanan S
 
Unit - IV.pptx
VaishnaviGaikwad67
 
Unit - IV (1).pptx
VaishnaviGaikwad67
 
SQLite Database Tutorial In Android
Android 5
 
Here is the company database for the problem--commen.pdf
fazilfootsteps
 
Accessing data with android cursors
info_zybotech
 
Accessing data with android cursors
info_zybotech
 
Here is the company database--comments can be addedD.pdf
fckindswear
 
Android database tutorial
info_zybotech
 
rdbms practical record
Shivaraju KoilaKonda
 
Dbms assignment 3(a) (1)
SwapnadipSahoo1
 
android_databaseConnectivity_SQLite.pptx
lhonapadmayuky699
 
Cursor & Content Value.pdf
uttamrao7
 
Database Concepts Team Project.pptx
LizSmith823201
 
Android SQLite database oriented application development
Kongu Engineering College, Perundurai, Erode
 
Android App To Display Employee Details
Saikrishna Tanguturu
 
4sem dbms(1)
Karthik Sagar
 
Chapter 3.pptx Oracle SQL or local Android database setup SQL, SQL-Lite, codi...
TAISEEREISA
 
base de datos ejemplo
Fabian Matamala
 
Ad

Recently uploaded (20)

PPTX
Presentation: Climate Citizenship Digital Education
Karl Donert
 
PPTX
Views on Education of Indian Thinkers J.Krishnamurthy..pptx
ShrutiMahanta1
 
PPSX
Health Planning in india - Unit 03 - CHN 2 - GNM 3RD YEAR.ppsx
Priyanshu Anand
 
PPTX
HEAD INJURY IN CHILDREN: NURSING MANAGEMENGT.pptx
PRADEEP ABOTHU
 
PPTX
Explorando Recursos do Summer '25: Dicas Essenciais - 02
Mauricio Alexandre Silva
 
PPTX
How to Manage Access Rights & User Types in Odoo 18
Celine George
 
PPTX
2025 Winter SWAYAM NPTEL & A Student.pptx
Utsav Yagnik
 
PPTX
Gall bladder, Small intestine and Large intestine.pptx
rekhapositivity
 
PPTX
Views on Education of Indian Thinkers Mahatma Gandhi.pptx
ShrutiMahanta1
 
PPTX
How to Manage Promotions in Odoo 18 Sales
Celine George
 
PDF
Federal dollars withheld by district, charter, grant recipient
Mebane Rash
 
PPTX
Optimizing Cancer Screening With MCED Technologies: From Science to Practical...
i3 Health
 
PDF
CEREBRAL PALSY: NURSING MANAGEMENT .pdf
PRADEEP ABOTHU
 
PPTX
CONVULSIVE DISORDERS: NURSING MANAGEMENT.pptx
PRADEEP ABOTHU
 
PDF
IMP NAAC-Reforms-Stakeholder-Consultation-Presentation-on-Draft-Metrics-Unive...
BHARTIWADEKAR
 
PPTX
How to Configure Lost Reasons in Odoo 18 CRM
Celine George
 
PPTX
Latest Features in Odoo 18 - Odoo slides
Celine George
 
PPTX
SCHOOL-BASED SEXUAL HARASSMENT PREVENTION AND RESPONSE WORKSHOP
komlalokoe
 
PDF
The-Beginnings-of-Indian-Civilisation.pdf/6th class new ncert social/by k san...
Sandeep Swamy
 
PDF
ARAL_Orientation_Day-2-Sessions_ARAL-Readung ARAL-Mathematics ARAL-Sciencev2.pdf
JoelVilloso1
 
Presentation: Climate Citizenship Digital Education
Karl Donert
 
Views on Education of Indian Thinkers J.Krishnamurthy..pptx
ShrutiMahanta1
 
Health Planning in india - Unit 03 - CHN 2 - GNM 3RD YEAR.ppsx
Priyanshu Anand
 
HEAD INJURY IN CHILDREN: NURSING MANAGEMENGT.pptx
PRADEEP ABOTHU
 
Explorando Recursos do Summer '25: Dicas Essenciais - 02
Mauricio Alexandre Silva
 
How to Manage Access Rights & User Types in Odoo 18
Celine George
 
2025 Winter SWAYAM NPTEL & A Student.pptx
Utsav Yagnik
 
Gall bladder, Small intestine and Large intestine.pptx
rekhapositivity
 
Views on Education of Indian Thinkers Mahatma Gandhi.pptx
ShrutiMahanta1
 
How to Manage Promotions in Odoo 18 Sales
Celine George
 
Federal dollars withheld by district, charter, grant recipient
Mebane Rash
 
Optimizing Cancer Screening With MCED Technologies: From Science to Practical...
i3 Health
 
CEREBRAL PALSY: NURSING MANAGEMENT .pdf
PRADEEP ABOTHU
 
CONVULSIVE DISORDERS: NURSING MANAGEMENT.pptx
PRADEEP ABOTHU
 
IMP NAAC-Reforms-Stakeholder-Consultation-Presentation-on-Draft-Metrics-Unive...
BHARTIWADEKAR
 
How to Configure Lost Reasons in Odoo 18 CRM
Celine George
 
Latest Features in Odoo 18 - Odoo slides
Celine George
 
SCHOOL-BASED SEXUAL HARASSMENT PREVENTION AND RESPONSE WORKSHOP
komlalokoe
 
The-Beginnings-of-Indian-Civilisation.pdf/6th class new ncert social/by k san...
Sandeep Swamy
 
ARAL_Orientation_Day-2-Sessions_ARAL-Readung ARAL-Mathematics ARAL-Sciencev2.pdf
JoelVilloso1
 

Java and xml

  • 1. A7, StephanosTower,Eachamukku,Kakkanadu,Kochi Android Application Development Training Tutorial For more info visit http://www.zybotech.in
  • 2. A7, StephanosTower,Eachamukku,Kakkanadu,Kochi JAVA AddEmployee publicclass AddEmployee extendsActivity{ EditText txtName; EditText txtAge; TextViewtxtEmps; DatabaseHelperdbHelper; SpinnerspinDept; @Override public voidonCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.addemployee); txtName=(EditText)findViewById(R.id.txtName); txtAge=(EditText)findViewById(R.id.txtAge); txtEmps=(TextView)findViewById(R.id.txtEmps); spinDept=(Spinner)findViewById(R.id.spinDept); } @Override publicvoid onStart() { try { super.onStart(); dbHelper=newDatabaseHelper(this); txtEmps.setText(txtEmps.getText()+String.valueOf(dbHelper.getEmployeeCount())); Cursor c=dbHelper.getAllDepts();
  • 3. A7, StephanosTower,Eachamukku,Kakkanadu,Kochi startManagingCursor(c); //SimpleCursorAdapterca=new SimpleCursorAdapter(this,android.R.layout.simple_spinner_item,c, new String []{DatabaseHelper.colDeptName},newint[]{android.R.id.text1}); SimpleCursorAdapterca=newSimpleCursorAdapter(this,R.layout.deptspinnerrow,c,newString [] {DatabaseHelper.colDeptName,"_id"},newint[]{R.id.txtDeptName}); //ca.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinDept.setAdapter(ca); spinDept.setOnItemSelectedListener(newOnItemSelectedListener() { publicvoid onItemSelected(AdapterView<?>parent,ViewselectedView, int position,longid) { // TODO Auto-generatedmethodstub } publicvoid onNothingSelected(AdapterView<?>arg0) { // TODO Auto-generatedmethodstub } }); //never close cursor } catch(Exceptionex) { CatchError(ex.toString()); } } publicvoid btnAddEmp_Click(Viewview) {
  • 4. A7, StephanosTower,Eachamukku,Kakkanadu,Kochi booleanok=true; try { Spannable spn=txtAge.getText(); String name=txtName.getText().toString(); int age=Integer.valueOf(spn.toString()); int deptID=Integer.valueOf((int)spinDept.getSelectedItemId()); Employee emp=newEmployee(name,age,deptID); dbHelper.AddEmployee(emp); } catch(Exceptionex) { ok=false; CatchError(ex.toString()); } finally { if(ok) { //NotifyEmpAdded(); Alerts.ShowEmpAddedAlert(this); txtEmps.setText("Numberofemployees"+String.valueOf(dbHelper.getEmployeeCount())); } } } void CatchError(String Exception) { Dialog diag=newDialog(this);
  • 5. A7, StephanosTower,Eachamukku,Kakkanadu,Kochi diag.setTitle("AddnewEmployee"); TextViewtxt=newTextView(this); txt.setText(Exception); diag.setContentView(txt); diag.show(); } void NotifyEmpAdded() { Dialog diag=newDialog(this); diag.setTitle("AddnewEmployee"); TextViewtxt=newTextView(this); txt.setText("Employee AddedSuccessfully"); diag.setContentView(txt); diag.show(); try { diag.wait(1000); } catch (InterruptedExceptione) { // TODO Auto-generatedcatchblock CatchError(e.toString()); } diag.notify(); diag.dismiss(); }} Alerts publicclass Alerts { publicstatic voidShowEmpAddedAlert(Contextcon) {
  • 6. A7, StephanosTower,Eachamukku,Kakkanadu,Kochi AlertDialog.Builderbuilder=newAlertDialog.Builder(con); builder.setTitle("AddnewEmployee"); builder.setIcon(android.R.drawable.ic_dialog_info); DialogListnerlistner=newDialogListner(); builder.setMessage("Employee Addedsuccessfully"); builder.setPositiveButton("ok",listner); AlertDialogdiag=builder.create(); diag.show(); } publicstatic AlertDialogShowEditDialog(final Contextcon,final Employee emp) { AlertDialog.Builderb=newAlertDialog.Builder(con); b.setTitle("Employee Details"); LayoutInflater li=LayoutInflater.from(con); Viewv=li.inflate(R.layout.editdialog,null); b.setIcon(android.R.drawable.ic_input_get); b.setView(v); final TextViewtxtName=(TextView)v.findViewById(R.id.txtDelName); final TextViewtxtAge=(TextView)v.findViewById(R.id.txtDelAge); final Spinnerspin=(Spinner)v.findViewById(R.id.spinDiagDept); Utilities.ManageDeptSpinner(con,spin); for(inti=0;i<spin.getCount();i++) { long id=spin.getItemIdAtPosition(i); if(id==emp.getDept()) { spin.setSelection(i,true);
  • 7. A7, StephanosTower,Eachamukku,Kakkanadu,Kochi break; } } txtName.setText(emp.getName()); txtAge.setText(String.valueOf(emp.getAge())); b.setPositiveButton("Modify",newOnClickListener() { publicvoid onClick(DialogInterface dialog,intwhich) { // TODO Auto-generatedmethodstub emp.setName(txtName.getText().toString()); emp.setAge(Integer.valueOf(txtAge.getText().toString())); emp.setDept((int)spin.getItemIdAtPosition(spin.getSelectedItemPosition())); try { DatabaseHelperdb=new DatabaseHelper(con); db.UpdateEmp(emp); } catch(Exceptionex) { CatchError(con, ex.toString()); } } }); b.setNeutralButton("Delete",new OnClickListener(){ publicvoid onClick(DialogInterface dialog,intwhich) { // TODO Auto-generatedmethodstub DatabaseHelperdb=new DatabaseHelper(con);
  • 8. A7, StephanosTower,Eachamukku,Kakkanadu,Kochi db.DeleteEmp(emp); } }); b.setNegativeButton("Cancel",null); return b.create(); //diag.show(); } static public voidCatchError(Context con, String Exception) { Dialog diag=newDialog(con); diag.setTitle("Error"); TextViewtxt=newTextView(con); txt.setText(Exception); diag.setContentView(txt); diag.show(); } } DatabaseDemo publicclass DatabaseDemo extendsTabActivity { DatabaseHelperdbHelper; GridViewgrid; TextViewtxtTest; /** Calledwhenthe activity is first created.*/ @Override public voidonCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);
  • 9. A7, StephanosTower,Eachamukku,Kakkanadu,Kochi SetupTabs(); } @Override public booleanonCreateOptionsMenu(Menumenu) { menu.add(1,1, 1, "Add Employee"); return true; } public booleanonOptionsItemSelected(MenuItemitem) { switch (item.getItemId()) { //Add employee case 1: Intent addIntent=newIntent(this,AddEmployee.class); startActivity(addIntent); break; } super.onOptionsItemSelected(item); return false; } void SetupTabs() { TabHost host=getTabHost(); TabHost.TabSpec spec=host.newTabSpec("tag1"); Intentin1=new Intent(this,AddEmployee.class); spec.setIndicator("AddEmployee"); spec.setContent(in1);
  • 10. A7, StephanosTower,Eachamukku,Kakkanadu,Kochi TabHost.TabSpec spec2=host.newTabSpec("tag2"); Intentin2=new Intent(this,GridList.class); spec2.setIndicator("Employees"); spec2.setContent(in2); host.addTab(spec); host.addTab(spec2); }} DataBaseHelper publicclass DatabaseHelper extendsSQLiteOpenHelper{ static final String dbName="demoDB"; static final String employeeTable="Employees"; static final String colID="EmployeeID"; static final String colName="EmployeeName"; static final String colAge="Age"; static final String colDept="Dept"; static final String deptTable="Dept"; static final String colDeptID="DeptID"; static final String colDeptName="DeptName"; static final String viewEmps="ViewEmps"; publicDatabaseHelper(Contextcontext) { super(context,dbName,null,33); // TODO Auto-generatedconstructorstub } @Override publicvoid onCreate(SQLiteDatabase db) { // TODO Auto-generatedmethodstub
  • 11. A7, StephanosTower,Eachamukku,Kakkanadu,Kochi db.execSQL("CREATETABLE "+deptTable+" ("+colDeptID+" INTEGER PRIMARY KEY , "+ colDeptName+" TEXT)"); db.execSQL("CREATETABLE "+employeeTable+" ("+colID+" INTEGERPRIMARYKEY AUTOINCREMENT, "+colName+" TEXT, "+colAge+" Integer,"+colDept+" INTEGERNOT NULL ,FOREIGN KEY ("+colDept+") REFERENCES "+deptTable+" ("+colDeptID+"));"); db.execSQL("CREATETRIGGERfk_empdept_deptid" + " BEFORE INSERT "+" ON"+employeeTable+" FOR EACH ROW BEGIN"+" SELECT CASE WHEN ((SELECT "+colDeptID+" FROM "+deptTable+" WHERE "+colDeptID+"=new."+colDept+" ) ISNULL)"+" THEN RAISE (ABORT,'ForeignKeyViolation') END;"+ " END;"); db.execSQL("CREATEVIEW "+viewEmps+" ASSELECT "+employeeTable+"."+colID+" AS_id,"+ " "+employeeTable+"."+colName+","+ " "+employeeTable+"."+colAge+","+" "+deptTable+"."+colDeptName+""+" FROM"+employeeTable+" JOIN"+deptTable+" ON "+employeeTable+"."+colDept+" ="+deptTable+"."+colDeptID ); //Inserts pre-defineddepartments InsertDepts(db); } @Override publicvoid onUpgrade(SQLiteDatabase db,int oldVersion,intnewVersion) { // TODO Auto-generatedmethodstub db.execSQL("DROPTABLE IF EXISTS "+employeeTable); db.execSQL("DROPTABLE IF EXISTS "+deptTable); db.execSQL("DROPTRIGGERIF EXISTS dept_id_trigger"); db.execSQL("DROPTRIGGERIF EXISTS dept_id_trigger22"); db.execSQL("DROPTRIGGERIF EXISTS fk_empdept_deptid"); db.execSQL("DROPVIEW IFEXISTS "+viewEmps); onCreate(db); } void AddEmployee(Employee emp) { SQLiteDatabase db= this.getWritableDatabase();
  • 12. A7, StephanosTower,Eachamukku,Kakkanadu,Kochi ContentValuescv=newContentValues(); cv.put(colName,emp.getName()); cv.put(colAge, emp.getAge()); cv.put(colDept,emp.getDept()); //cv.put(colDept,2); db.insert(employeeTable,colName,cv); db.close(); } int getEmployeeCount() { SQLiteDatabase db=this.getWritableDatabase(); Cursor cur= db.rawQuery("Select*from "+employeeTable,null); int x= cur.getCount(); cur.close(); return x; } Cursor getAllEmployees() { SQLiteDatabase db=this.getWritableDatabase(); //Cursor cur= db.rawQuery("Select"+colID+" as_id , "+colName+","+colAge+" from "+employeeTable,newString[]{}); Cursor cur= db.rawQuery("SELECT * FROM "+viewEmps,null); return cur; } Cursor getAllDepts()
  • 13. A7, StephanosTower,Eachamukku,Kakkanadu,Kochi { SQLiteDatabase db=this.getReadableDatabase(); Cursor cur=db.rawQuery("SELECT "+colDeptID+" as _id, "+colDeptName+" from"+deptTable,new String [] {}); return cur; } void InsertDepts(SQLiteDatabase db) { ContentValuescv=newContentValues(); cv.put(colDeptID,1); cv.put(colDeptName, "Sales"); db.insert(deptTable,colDeptID,cv); cv.put(colDeptID,2); cv.put(colDeptName,"IT"); db.insert(deptTable,colDeptID,cv); cv.put(colDeptID,3); cv.put(colDeptName,"HR"); db.insert(deptTable,colDeptID,cv); db.insert(deptTable,colDeptID,cv); } publicString GetDept(intID) { SQLiteDatabase db=this.getReadableDatabase(); String[]params=new String[]{String.valueOf(ID)}; Cursor c=db.rawQuery("SELECT "+colDeptName+" FROM"+deptTable+" WHERE "+colDeptID+"=?",params); c.moveToFirst();
  • 14. A7, StephanosTower,Eachamukku,Kakkanadu,Kochi int index=c.getColumnIndex(colDeptName); return c.getString(index); } publicCursor getEmpByDept(StringDept) { SQLiteDatabase db=this.getReadableDatabase(); String [] columns=newString[]{"_id",colName,colAge,colDeptName}; Cursor c=db.query(viewEmps,columns,colDeptName+"=?",newString[]{Dept},null, null,null); return c; } public intGetDeptID(StringDept) { SQLiteDatabase db=this.getReadableDatabase(); Cursor c=db.query(deptTable,newString[]{colDeptID+" as _id",colDeptName},colDeptName+"=?", new String[]{Dept},null,null,null); //Cursor c=db.rawQuery("SELECT "+colDeptID+" as _id FROM "+deptTable+" WHERE "+colDeptName+"=?",newString[]{Dept}); c.moveToFirst(); return c.getInt(c.getColumnIndex("_id")); } publicint UpdateEmp(Employee emp) { SQLiteDatabase db=this.getWritableDatabase(); ContentValuescv=newContentValues(); cv.put(colName,emp.getName()); cv.put(colAge,emp.getAge()); cv.put(colDept,emp.getDept()); return db.update(employeeTable,cv,colID+"=?",newString []{String.valueOf(emp.getID())});
  • 15. A7, StephanosTower,Eachamukku,Kakkanadu,Kochi } publicvoid DeleteEmp(Employee emp) { SQLiteDatabase db=this.getWritableDatabase(); db.delete(employeeTable,colID+"=?",newString[]{String.valueOf(emp.getID())}); db.close();}} DialogListener publicclass DialogListnerimplementsandroid.content.DialogInterface.OnClickListener{ publicDialogListner() { } publicvoid onClick(DialogInterface dialog,intwhich) { // TODO Auto-generatedmethodstub } } Employee publicclass Employee { int _id; String _name; int _age; int _dept; publicEmployee(StringName,intAge,intDept) { this._name=Name; this._age=Age; this._dept=Dept;
  • 16. A7, StephanosTower,Eachamukku,Kakkanadu,Kochi } publicEmployee(StringName,intAge) { this._name=Name; this._age=Age; } publicint getID() { return this._id; } publicvoid SetID(intID) { this._id=ID; } publicString getName() { return this._name; } publicint getAge() { return this._age; } publicvoid setName(StringName) { this._name=Name; } publicvoid setAge(intAge) {
  • 17. A7, StephanosTower,Eachamukku,Kakkanadu,Kochi this._age=Age; } publicvoid setDept(intDept) { this._dept=Dept; } publicString getDeptName(Contextcon,intDept) { return newDatabaseHelper(con).GetDept(Dept); } publicint getDept() { return this._dept; } } GridList publicclass GridListextendsActivity { DatabaseHelperdbHelper; static public GridViewgrid; TextViewtxtTest; SpinnerspinDept1; /** Calledwhenthe activity is first created.*/ @Override public voidonCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.gridview); grid=(GridView)findViewById(R.id.grid);
  • 18. A7, StephanosTower,Eachamukku,Kakkanadu,Kochi txtTest=(TextView)findViewById(R.id.txtTest); spinDept1=(Spinner)findViewById(R.id.spinDept1); Utilities.ManageDeptSpinner(this.getParent(),spinDept1); final DatabaseHelperdb=new DatabaseHelper(this); try { spinDept1.setOnItemSelectedListener(newOnItemSelectedListener() { publicvoid onItemSelected(AdapterView<?>arg0,Viewarg1, int arg2, longarg3) { // TODO Auto-generatedmethodstub LoadGrid(); //sca.notifyDataSetChanged(); } publicvoid onNothingSelected(AdapterView<?>arg0) { // TODO Auto-generatedmethodstub } }); } catch(Exceptionex) { txtTest.setText(ex.toString()); } try { grid.setOnItemClickListener(newOnItemClickListener() { publicvoid onItemClick(AdapterView<?>parent,Viewv,int position,
  • 19. A7, StephanosTower,Eachamukku,Kakkanadu,Kochi long id) { // TODO Auto-generatedmethodstub try { SQLiteCursorcr=(SQLiteCursor)parent.getItemAtPosition(position); String name= cr.getString(cr.getColumnIndex(DatabaseHelper.colName)); int age=cr.getInt(cr.getColumnIndex(DatabaseHelper.colAge)); String Dept= cr.getString(cr.getColumnIndex(DatabaseHelper.colDeptName)); Employee emp=newEmployee(name,age,db.GetDeptID(Dept)); emp.SetID((int)id); AlertDialogdiag= Alerts.ShowEditDialog(GridList.this,emp); diag.setOnDismissListener(newOnDismissListener() { publicvoid onDismiss(DialogInterface dialog) { // TODO Auto-generatedmethodstub txtTest.setText("dismissed"); //((SimpleCursorAdapter)grid.getAdapter()).notifyDataSetChanged(); LoadGrid(); } }); diag.show(); } catch(Exceptionex) { Alerts.CatchError(GridList.this,ex.toString()); } }
  • 20. A7, StephanosTower,Eachamukku,Kakkanadu,Kochi }); } catch(Exceptionex) { } } @Override public voidonStart() { super.onStart(); //LoadGrid(); } public voidLoadGrid() { dbHelper=newDatabaseHelper(this); try { //Cursor c=dbHelper.getAllEmployees(); Viewv=spinDept1.getSelectedView(); TextViewtxt=(TextView)v.findViewById(R.id.txtDeptName); String Dept=String.valueOf(txt.getText()); Cursor c=dbHelper.getEmpByDept(Dept); startManagingCursor(c); String [] from=newString []{DatabaseHelper.colName,DatabaseHelper.colAge,DatabaseHelper.colDeptName}; int [] to=new int[] {R.id.colName,R.id.colAge,R.id.colDept}; SimpleCursorAdaptersca=newSimpleCursorAdapter(this,R.layout.gridrow,c,from,to);
  • 21. A7, StephanosTower,Eachamukku,Kakkanadu,Kochi grid.setAdapter(sca); } catch(Exceptionex) { AlertDialog.Builderb=newAlertDialog.Builder(this); b.setMessage(ex.toString()); b.show(); } } } Utilities publicclass Utilities{ static public voidManageDeptSpinner(Contextcontext,Spinnerview) { DatabaseHelperdbHelper=newDatabaseHelper(context); Cursor c=dbHelper.getAllDepts(); //context.startManagingCursor(c); //SimpleCursorAdapterca=new SimpleCursorAdapter(this,android.R.layout.simple_spinner_item,c,new String [] {DatabaseHelper.colDeptName},newint[]{android.R.id.text1}); SimpleCursorAdapterca=newSimpleCursorAdapter(context,R.layout.deptspinnerrow,c,newString [] {DatabaseHelper.colDeptName,"_id"},newint[]{R.id.txtDeptName}); view.setAdapter(ca); } }
  • 22. A7, StephanosTower,Eachamukku,Kakkanadu,Kochi XML AddEmployee <?xml version="1.0" encoding="utf-8" ?> - <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height ="wrap_content"> - <LinearLayout android:layout_width="fill_parent" android:layout_height ="wrap_content" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height ="wrap_content" android:text="Employee Name" /> <EditText android:layout_width="fill_parent" android:layout_height ="fill_parent" android:id="@+id/txtName" android:autoText="false" /> <TextView android:layout_width="wrap_content" android:layout_height ="wrap_content" android:text="Employee Age" /> <EditText android:layout_width="fill_parent" android:layout_height ="fill_parent" android:id="@+id/txtAge" android:inputType="number" android:digits="0123456789" android:singleLine="true" /> <TextView android:layout_width="wrap_content" android:layout_height ="wrap_content" android:text="Employee Dept" /> <Spinner android:layout_width="fill_parent" android:layout_height ="fill_parent" android:id="@+id/spinDept" /> <Button android:layout_width="wrap_content" android:layout_height ="wrap_content" android:id="@+id/btnAdd" android:text="Add Employee" android:onClick="btnAddEmp_Click" /> <TextView android:layout_width="wrap_content" android:layout_height ="wrap_content" android:text="Number of employees" android:id="@+id/txtEmps" /> </LinearLayout > </ScrollView> editdialog <?xml version="1.0" encoding="utf-8" ?> - <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height ="wrap_content" android:orientation="vertical"> - <TableRow> <TextView android:layout_width="fill_parent" android:layout_height ="wrap_content" android:text="Name:" /> <EditText android:layout_width="fill_parent" android:layout_height ="wrap_content" android:id="@+id/txtDelName" /> </TableRow> - <TableRow> <TextView android:layout_width="fill_parent" android:layout_height ="wrap_content" android:text="Age:" /> <EditText android:layout_width="fill_parent" android:layout_height ="wrap_content" android:id="@+id/txtDelAge" /> </TableRow> - <TableRow> <Spinner android:layout_width="fill_parent" android:layout_height ="wrap_content" android:id="@+id/spinDiagDept" android:layout_span="2" /> </TableRow> <TableRow /> </TableLayout>
  • 23. A7, StephanosTower,Eachamukku,Kakkanadu,Kochi Deptspinnerrow <?xml version="1.0" encoding="utf-8" ?> - <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height ="wrap_content"> <TextView android:layout_width="fill_parent" android:layout_height ="wrap_content" android:id="@+id/txtDeptName" android:textColor="#000" /> <TextView android:layout_width="fill_parent" android:layout_height ="wrap_content" android:id="@+id/txtDeptID" android:textColor="#000" /> </LinearLayout > Gridrow <?xml version="1.0" encoding="utf-8" ?> - <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> - <TableRow> <TextView android:layout_width="50px" android:layout_height ="wrap_content" android:id="@+id/colName" android:padding="5px" android:layout_weight ="1" /> <TextView android:layout_width="50px" android:layout_height ="wrap_content" android:id="@+id/colAge" android:padding="5px" android:layout_weight="1" /> <TextView android:layout_width="50px" android:layout_height ="wrap_content" android:id="@+id/colDept" android:padding="5px" android:layout_weight ="1" /> </TableRow> </TableLayout> Gridview <?xml version="1.0" encoding="utf-8" ?> - <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height ="wrap_content" android:id="@+id/tab1"> - <TableLayout android:layout_width="fill_parent" android:layout_height ="fill_parent"> - <TableRow> <Spinner android:layout_width="fill_parent" android:layout_height ="fill_parent" android:id="@+id/spinDept1" android:layout_span="3" /> </TableRow> - <TableRow> <TextView android:layout_width="fill_parent" android:layout_height ="fill_parent" android:text="Employee Name" android:layout_weight ="1" /> <TextView android:layout_width="fill_parent" android:layout_height ="fill_parent" android:text="Employee Age" android:layout_weight="1" /> <TextView android:layout_width="fill_parent" android:layout_height ="fill_parent" android:text="Department" android:layout_weight ="1" /> </TableRow> </TableLayout> <GridView android:id="@+id/grid" android:layout_width="fill_parent" android:layout_height ="fill_parent" android:numColumns="1" android:stretchMode="columnWidth" /> <TextView android:layout_width="fill_parent" android:layout_height ="fill_parent" android:text="Employee Age" android:id="@+id/txtTest" /> </LinearLayout >
  • 24. A7, StephanosTower,Eachamukku,Kakkanadu,Kochi listview <?xml version="1.0" encoding="utf-8" ?> - <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height ="wrap_content"> <ListView android:id="@+id/listEmps" android:layout_width="fill_parent" android:layout_height ="fill_parent" android:text="A semi-random button" /> <TextView android:layout_width="fill_parent" android:layout_height ="wrap_content" android:text="@string/hello" android:id="@+id/txt" /> </LinearLayout > Main <?xml version="1.0" encoding="utf-8" ?> - <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height ="fill_parent" android:id="@android:id/tabhost"> <TabWidget android:layout_width="fill_parent" android:layout_height ="wrap_content" android:id="@android:id/tabs" /> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height ="fill_parent" android:paddingTop="60px" /> </TabHost>