Difference between revisions of "Teams Winter 2011/team2/lab5"

From CDOT Wiki
Jump to: navigation, search
(Team 2 -ECL500)
(Start Application and coding)
 
(18 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
= '''Team 2 -ECL500 Android Application Development with Eclipse - Lab 5''' =
  
== '''Team 2 -ECL500''' ==
+
For this lab, we will create a small Android application called Parking that will search in a database and shows number of cars based on searched brand and model.<br/>
  
'''Android Application Development with Eclipse - Lab 5'''
+
==Prepare  Environment ==
 +
1. First we have to install Android SDk. the latest version is in [http://developer.android.com/sdk/index.html AnDroidSDK].<br/>
 +
::* we can install different virtual machines with this SDK manager
 +
2. Then we have to prepare Eclipse for developing Android by going to Help -> install new software. and add https://dl-ssl.google.com/android/eclipse/ repository. <br/>
 +
3. Then in Windows-> preference -> Android we have to set location of SDK that we installed at step 1
  
For this lab, we will create a small Android application called Parking that will search in a database and shows number of cars based on searched brand and model.
+
== Start Application and coding ==
First we have to install Android SDk. the latest version is in [http://developer.android.com/sdk/index.html].
+
 
 +
1. start a New Android Project by choosing File -> New -> Android Project<br/>
 +
2. Type Project Name and Properties of App ( for convenience you can choose create project from existing Sample) <br/>
 +
[[Image:Androidset1.png ]]
 +
 
 +
<br/>
 +
3. Eclipse SDK give developers a GUI interface to design Application easy. by click on res->layout->main.xml developer can design the Application<br/>
 +
[[Image:AndSetu2.png]]
 +
 
 +
<br/>
 +
4.Now we can write code of classes
 +
 
 +
DatabaseHelper.java
 +
<syntaxhighlight lang="java">
 +
 
 +
package Parking.Garage;
 +
 
 +
 
 +
import java.util.ArrayList;
 +
 
 +
 
 +
import android.app.AlertDialog;
 +
import android.content.ContentValues;
 +
import android.content.Context;
 +
import android.database.Cursor;
 +
import android.database.SQLException;
 +
import android.database.sqlite.SQLiteDatabase.CursorFactory;
 +
import android.database.sqlite.SQLiteOpenHelper;
 +
import android.database.sqlite.SQLiteDatabase;
 +
import android.hardware.SensorManager;
 +
import android.provider.SyncStateContract.Constants;
 +
 
 +
 
 +
public class DatabaseHelper extends SQLiteOpenHelper {
 +
private static final String DATABASE_NAME = "car_db";
 +
private static final String BRAND = "brand";
 +
private static final String MODEL = "model";
 +
private static final String COUNT = "count";
 +
 +
public DatabaseHelper(Context context) {
 +
super(context, getDatabaseName(), null, 1);
 +
// TODO Auto-generated constructor stub
 +
//openNewDb();
 +
}
 +
 
 +
 
 +
@Override
 +
public void onCreate(SQLiteDatabase db) {
 +
// TODO Auto-generated method stub
 +
 
 +
 
 +
//db.execSQL("DROP TABLE Cars;");
 +
db.execSQL("CREATE TABLE Cars (car_id INTEGER PRIMARY KEY AUTOINCREMENT, brand TEXT, model TEXT, count INTEGER);");
 +
 +
ContentValues cv = new ContentValues();
 +
 +
cv.put(getBrand(), "Bentley");
 +
cv.put(getModel(), "Continental GT");
 +
cv.put(COUNT, 1);
 +
db.insert("Cars", getBrand(), cv );
 +
 +
cv.put(getBrand(), "Honda");
 +
cv.put(getModel(), "Accord");
 +
cv.put(COUNT, 23);
 +
db.insert("Cars", getBrand(), cv );
 +
 +
cv.put(getBrand(), "Honda");
 +
cv.put(getModel(), "Civic");
 +
cv.put(COUNT, 35);
 +
db.insert("Cars", getBrand(), cv );
 +
 
 +
 
 +
cv.put(getBrand(), "Honda");
 +
cv.put(getModel(), "Prelude");
 +
cv.put(COUNT, 40);
 +
db.insert("Cars", getBrand(), cv );
 +
 +
cv.put(getBrand(), "Mazda");
 +
cv.put(getModel(), "5");
 +
cv.put(COUNT, 7);
 +
db.insert("Cars", getBrand(), cv );
 +
 
 +
 
 +
cv.put(getBrand(), "Mazda");
 +
cv.put(getModel(), "3");
 +
cv.put(COUNT, 5);
 +
db.insert("Cars", getBrand(), cv );
 +
 +
cv.put(getBrand(), "Mazda");
 +
cv.put(getModel(), "626");
 +
cv.put(COUNT, 2);
 +
db.insert("Cars", getBrand(), cv );
 +
 +
cv.put(getBrand(), "Mazda");
 +
cv.put(getModel(), "323");
 +
cv.put(COUNT, 6);
 +
db.insert("Cars", getBrand(), cv );
 +
 +
cv.put(getBrand(), "Nissan");
 +
cv.put(getModel(), "Maxima");
 +
cv.put(COUNT, 90);
 +
db.insert("Cars", getBrand(), cv );
 +
 +
 +
cv.put(getBrand(), "Nissan");
 +
cv.put(getModel(), "Altima");
 +
cv.put(COUNT, 1);
 +
db.insert("Cars", getBrand(), cv );
 +
 +
cv.put(getBrand(), "Nissan");
 +
cv.put(getModel(), "Sentra");
 +
cv.put(COUNT, 3);
 +
db.insert("Cars", getBrand(), cv );
 +
}
 +
 
 +
 
 +
@Override
 +
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
 +
{
 +
// TODO Auto-generated method stub
 +
android.util.Log.w("Cars","Upgrading database, which will destroy all old data");
 +
db.execSQL("DROP TABLE IF EXISTS Cars");
 +
onCreate(db);
 +
}
 +
 +
public SQLiteDatabase openNewDb()
 +
{
 +
SQLiteDatabase db = this.getWritableDatabase();
 +
return db;
 +
}
 +
 
 +
 
 +
 +
public ArrayList<String> getCar(SQLiteDatabase db, String userBrand, String userModel){
 +
//db = getWritableDatabase();
 +
ArrayList<String> list = new ArrayList<String>();
 +
String brandTemp = "";
 +
String modelTemp = "";
 +
int    countTemp =0;
 +
String[] inputs = {userModel, userBrand};
 +
Cursor c = db.rawQuery("SELECT brand, model, count FROM Cars WHERE " + MODEL + "= ? AND " + BRAND + " = ?", inputs );
 +
c.moveToFirst();
 +
while(!c.isAfterLast())
 +
{
 +
brandTemp = c.getString(0);
 +
modelTemp = c.getString(1);
 +
countTemp = c.getInt(2);
 +
c.moveToNext();
 +
}
 +
c.close();
 +
list.add(brandTemp);
 +
list.add(modelTemp);
 +
list.add(countTemp + "");
 +
return list;
 +
}
 +
 
 +
 
 +
public static String getBrand() {
 +
return BRAND;
 +
}
 +
 
 +
 
 +
public static String getModel() {
 +
return MODEL;
 +
}
 +
 
 +
 
 +
public static String getDatabaseName() {
 +
return DATABASE_NAME;
 +
}
 +
}
 +
 
 +
</syntaxhighlight>
 +
<br/>
 +
 
 +
Park.java
 +
<syntaxhighlight lang="java">
 +
 
 +
package Parking.Garage;
 +
 
 +
import java.util.ArrayList;
 +
 
 +
import android.app.Activity;
 +
import android.app.AlertDialog;
 +
import android.app.Dialog;
 +
import android.database.Cursor;
 +
import android.database.sqlite.SQLiteDatabase;
 +
import android.os.Bundle;
 +
import android.view.View;
 +
import android.view.View.OnClickListener;
 +
import android.widget.Button;
 +
import android.widget.EditText;
 +
 
 +
public class Park extends Activity implements OnClickListener {
 +
Button btnSearch;
 +
Button btnCreate;
 +
EditText editModel, editBrand;
 +
DatabaseHelper carModel = new DatabaseHelper(this);
 +
SQLiteDatabase db;
 +
ArrayList<String> cars = new ArrayList<String>();
 +
 +
    /** Called when the activity is first created. */
 +
    @Override
 +
    public void onCreate(Bundle savedInstanceState) {
 +
        super.onCreate(savedInstanceState);
 +
        setContentView(R.layout.main);
 +
     
 +
        btnSearch = (Button) findViewById(R.id.btnSearch);
 +
        btnSearch.setOnClickListener(this);
 +
        btnCreate = (Button) findViewById(R.id.btnCreate);
 +
        btnCreate.setOnClickListener(this);
 +
               
 +
        editBrand = (EditText) findViewById(R.id.editBrand);
 +
        editModel = (EditText) findViewById(R.id.editModel);
 +
    }
 +
@Override
 +
public void onClick(View v) {
 +
// TODO Auto-generated method stub
 +
 +
String brand = editBrand.getText().toString();
 +
String model = editModel.getText().toString();
 +
if(v == btnSearch)
 +
{
 +
if(brand.isEmpty()||model.isEmpty())
 +
{
 +
new AlertDialog.Builder(this)
 +
.setTitle("Empty Fields")
 +
.setMessage("All fields are mandatory")
 +
.setNeutralButton("Close", null)
 +
.show();
 +
}
 +
else
 +
{
 +
db = carModel.openNewDb();
 +
cars = carModel.getCar(db, brand, model);
 +
int a = cars.size();
 +
if(a == 0)
 +
{
 +
editBrand.setText("nothing");
 +
}
 +
else
 +
{
 +
String carBrand = cars.get(0);
 +
String carModell = cars.get(1);
 +
String carCount = cars.get(2);
 +
 +
new AlertDialog.Builder(this)
 +
.setTitle("Car Information")
 +
.setMessage("Brand: " + carBrand + "\n" +
 +
"Model: " + carModell + "\n" +
 +
"Count: " + carCount )
 +
.setNeutralButton("Done", null)
 +
.show();
 +
}
 +
}
 +
}
 +
else if (v == btnCreate)
 +
{
 +
 +
editBrand.setText(brand);
 +
editModel.setText(model);
 +
}
 +
}
 +
}
 +
 
 +
</syntaxhighlight>
 +
<br/>
 +
 
 +
== Running Application ==
 +
For running the Application we have to click on run and it will run Android SDK and runn application<br/>
 +
[[Image:007.jpg]]
 +
<br/>
 +
<br/>
 +
[[Image:android2.jpg ]]

Latest revision as of 21:25, 16 April 2011

Team 2 -ECL500 Android Application Development with Eclipse - Lab 5

For this lab, we will create a small Android application called Parking that will search in a database and shows number of cars based on searched brand and model.

Prepare Environment

1. First we have to install Android SDk. the latest version is in AnDroidSDK.

  • we can install different virtual machines with this SDK manager

2. Then we have to prepare Eclipse for developing Android by going to Help -> install new software. and add https://dl-ssl.google.com/android/eclipse/ repository.
3. Then in Windows-> preference -> Android we have to set location of SDK that we installed at step 1

Start Application and coding

1. start a New Android Project by choosing File -> New -> Android Project
2. Type Project Name and Properties of App ( for convenience you can choose create project from existing Sample)
Androidset1.png


3. Eclipse SDK give developers a GUI interface to design Application easy. by click on res->layout->main.xml developer can design the Application
AndSetu2.png


4.Now we can write code of classes

DatabaseHelper.java
package Parking.Garage;


import java.util.ArrayList;


import android.app.AlertDialog;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase;
import android.hardware.SensorManager;
import android.provider.SyncStateContract.Constants;


public class DatabaseHelper extends SQLiteOpenHelper {
	private static final String DATABASE_NAME = "car_db";
	private static final String BRAND = "brand";
	private static final String MODEL = "model";
	private static final String COUNT = "count";
	
	public DatabaseHelper(Context context) {
		super(context, getDatabaseName(), null, 1);
		// TODO Auto-generated constructor stub
		//openNewDb();
	}


	@Override
	public void onCreate(SQLiteDatabase db) {
		// TODO Auto-generated method stub


		//db.execSQL("DROP TABLE Cars;");
		db.execSQL("CREATE TABLE Cars (car_id INTEGER PRIMARY KEY AUTOINCREMENT, brand TEXT, model TEXT, count INTEGER);");
		
		ContentValues cv = new ContentValues();
			
		cv.put(getBrand(), "Bentley");
		cv.put(getModel(), "Continental GT");
		cv.put(COUNT, 1);
		db.insert("Cars", getBrand(), cv );
		
		cv.put(getBrand(), "Honda");
		cv.put(getModel(), "Accord");
		cv.put(COUNT, 23);
		db.insert("Cars", getBrand(), cv );
		
		cv.put(getBrand(), "Honda");
		cv.put(getModel(), "Civic");
		cv.put(COUNT, 35);
		db.insert("Cars", getBrand(), cv );


		cv.put(getBrand(), "Honda");
		cv.put(getModel(), "Prelude");
		cv.put(COUNT, 40);
		db.insert("Cars", getBrand(), cv );
		
		cv.put(getBrand(), "Mazda");
		cv.put(getModel(), "5");
		cv.put(COUNT, 7);
		db.insert("Cars", getBrand(), cv );


		cv.put(getBrand(), "Mazda");
		cv.put(getModel(), "3");
		cv.put(COUNT, 5);
		db.insert("Cars", getBrand(), cv );
		
		cv.put(getBrand(), "Mazda");
		cv.put(getModel(), "626");
		cv.put(COUNT, 2);
		db.insert("Cars", getBrand(), cv );
		
		cv.put(getBrand(), "Mazda");
		cv.put(getModel(), "323");
		cv.put(COUNT, 6);
		db.insert("Cars", getBrand(), cv );
	
		cv.put(getBrand(), "Nissan");
		cv.put(getModel(), "Maxima");
		cv.put(COUNT, 90);
		db.insert("Cars", getBrand(), cv );
		
		
		cv.put(getBrand(), "Nissan");
		cv.put(getModel(), "Altima");
		cv.put(COUNT, 1);
		db.insert("Cars", getBrand(), cv );
		
		cv.put(getBrand(), "Nissan");
		cv.put(getModel(), "Sentra");
		cv.put(COUNT, 3);
		db.insert("Cars", getBrand(), cv );
	}


	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
	{
		// TODO Auto-generated method stub
		android.util.Log.w("Cars","Upgrading database, which will destroy all old data");
		db.execSQL("DROP TABLE IF EXISTS Cars");
		onCreate(db);
	}
	
	public SQLiteDatabase openNewDb()
	{
		SQLiteDatabase db = this.getWritableDatabase();
		return db;
	}


	
	public ArrayList<String> getCar(SQLiteDatabase db, String userBrand, String userModel){
		//db = getWritableDatabase();
		ArrayList<String> list = new ArrayList<String>();	
		String brandTemp = "";
		String modelTemp = "";
		int    countTemp =0;
		String[] inputs = {userModel, userBrand};
		Cursor c = db.rawQuery("SELECT brand, model, count FROM Cars WHERE " + MODEL + "= ? AND " + BRAND + " = ?", inputs );
		c.moveToFirst();
		while(!c.isAfterLast())
		{
			brandTemp = c.getString(0);
			modelTemp = c.getString(1);
			countTemp = c.getInt(2);
			c.moveToNext();
		}
		c.close();
		list.add(brandTemp);
		list.add(modelTemp);
		list.add(countTemp + "");
		return list;
	}


	public static String getBrand() {
		return BRAND;
	}


	public static String getModel() {
		return MODEL;
	}


	public static String getDatabaseName() {
		return DATABASE_NAME;
	}
}


Park.java

package Parking.Garage;

import java.util.ArrayList;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class Park extends Activity implements OnClickListener {
	Button btnSearch;
	Button btnCreate;
	EditText editModel, editBrand;
	DatabaseHelper carModel = new DatabaseHelper(this);
	SQLiteDatabase db;
	ArrayList<String> cars = new ArrayList<String>();
	
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        btnSearch = (Button) findViewById(R.id.btnSearch);
        btnSearch.setOnClickListener(this);
        btnCreate = (Button) findViewById(R.id.btnCreate);
        btnCreate.setOnClickListener(this);
                
        editBrand = (EditText) findViewById(R.id.editBrand);
        editModel = (EditText) findViewById(R.id.editModel);
    }
	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		
		String brand = editBrand.getText().toString();
		String model = editModel.getText().toString();
		if(v == btnSearch)
		{
			if(brand.isEmpty()||model.isEmpty())
			{
				new AlertDialog.Builder(this)
				.setTitle("Empty Fields")
				.setMessage("All fields are mandatory")
				.setNeutralButton("Close", null)
				.show();
			}
			else
			{
				db = carModel.openNewDb();
				cars = carModel.getCar(db, brand, model);
				int a = cars.size();
				if(a == 0)
				{
					editBrand.setText("nothing");
				}
				else
				{
					String carBrand = cars.get(0);
					String carModell = cars.get(1);
					String carCount = cars.get(2);
					
					new AlertDialog.Builder(this)
					.setTitle("Car Information")
					.setMessage("Brand: " + carBrand + "\n" +
							"Model: " + carModell + "\n" +
							"Count: " + carCount )
					.setNeutralButton("Done", null)
					.show();
				}	
			}
		}
		else if (v == btnCreate)
		{
	
			editBrand.setText(brand);
			editModel.setText(model);
		}
	}
}


Running Application

For running the Application we have to click on run and it will run Android SDK and runn application
007.jpg

Android2.jpg