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>

Java and xml

  • 1.
    A7, StephanosTower,Eachamukku,Kakkanadu,Kochi Android ApplicationDevelopment Training Tutorial For more info visit http://www.zybotech.in
  • 2.
    A7, StephanosTower,Eachamukku,Kakkanadu,Kochi JAVA AddEmployee publicclass AddEmployeeextendsActivity{ 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, newString []{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(); Stringname=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() { Dialogdiag=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(); } publicstaticAlertDialogShowEditDialog(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() { publicvoidonClick(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(); } staticpublic 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=newIntent(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(); } intgetEmployeeCount() { 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(); Cursorcur=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); returnc.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(Employeeemp) { 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() { returnthis._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; } publicStringgetDeptName(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=newDatabaseHelper(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(); } publicvoidLoadGrid() { 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 publicclassUtilities{ 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>