/ Published in: Java
Expand |
Embed | Plain Text
DBAdapter --------- package com.v3.userform; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; public class DBAdapter { // Initial Configuration private static final int DATABASE_VER = 1; private DatabaseHelper DBHelper; private SQLiteDatabase db; // Set the Tables Key Words // Table Queries private static final String CREATE_USERS = "CREATE TABLE users (_id INTEGER PRIMARY KEY AUTOINCREMENT, first_name TEXT, last_name TEXT, sex TEXT, dob TEXT, city_id INTEGER);"; private static final String CREATE_CITIES = "CREATE TABLE cities (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL UNIQUE);"; private static final String CREATE_HOBBIES = "CREATE TABLE hobbies (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL UNIQUE);"; private static final String CREATE_USERS_HOBBIES = "CREATE TABLE users_hobbies (_id INTEGER PRIMARY KEY AUTOINCREMENT, user_id INTEGER, hobby_id INTEGER);"; // Keys "Swimming" }; this.context = ctx; DBHelper = new DatabaseHelper(context); } private static class DatabaseHelper extends SQLiteOpenHelper { super(context, DB_NAME, null, DATABASE_VER); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_USERS); db.execSQL(CREATE_CITIES); db.execSQL(CREATE_HOBBIES); db.execSQL(CREATE_USERS_HOBBIES); ContentValues initialValues = new ContentValues(); for (int i = 0; i < hobbies.length; i++) { initialValues.put(KEY_NAME, hobbies[i]); db.insert(TABLE_HOBBIES, null, initialValues); } } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.w(TAG, "Upgrading database from version " + oldVersion + " to " + newVersion + ", which will destroy all old data"); db.execSQL("DROP TABLE IF EXISTS users"); db.execSQL("DROP TABLE IF EXISTS cities"); db.execSQL("DROP TABLE IF EXISTS hobbies"); db.execSQL("DROP TABLE IF EXISTS users_hobbies"); onCreate(db); } } db = DBHelper.getWritableDatabase(); return this; } public void close() { DBHelper.close(); } // Custom Methods // Check if City Exists Cursor mCursor = db + "=" + "'" + name + "'", null, null, null, null, null); if (mCursor.moveToFirst()) { return true; } return false; } // Insert data to user table int city_id) { ContentValues initialValues = new ContentValues(); initialValues.put(KEY_FNAME, fnm); initialValues.put(KEY_LNAME, lnm); initialValues.put(KEY_SEX, sex); initialValues.put(KEY_DOB, dob); initialValues.put(CID, city_id); return db.insert(TABLE_USERS, null, initialValues); } // Insert City ContentValues initialValues = new ContentValues(); initialValues.put(KEY_NAME, name); return db.insert(TABLE_CITIES, null, initialValues); } // Insert into user_hobby public long insertUers_Hobbies(int uid, int hid) { ContentValues initialValues = new ContentValues(); initialValues.put(KEY_UID, uid); initialValues.put(KEY_HID, hid); db.insert(TABLE_USERS_HOBBIES, null, initialValues); return 5; } // City List null, null, null, KEY_NAME + " ASC", null); } // List only user Fname null, null, null, null); } Cursor c = db + "=" + "'" + city + "'", null, null, null, null, null); Cursor mCursor = db + "=" + "'" + city + "'", null, null, null, null, null); mCursor.moveToFirst(); if (c.moveToFirst()) { do { } while (c.moveToNext()); } else return -1; } // Get city Name + "'" + cityID + "'", null, null, null, null, null); } // Get the user data KEY_SEX, KEY_DOB, CID }, KEY_FNAME + "='" + fNm + "'", null, null, null, null, null); } // Get user hobbies KEY_HID }, KEY_UID + "='" + uid + "'", null, null, null, null, null); } // Get single User Data KEY_SEX, KEY_DOB, CID }, ID + "='" + uid + "'", null, null, null, null, null); } // Get All user data KEY_SEX, KEY_DOB, CID }, null, null, null, null, null); } } HomeActivity ------------- package com.v3.userform; import java.util.Calendar; import android.app.Activity; import android.app.AlertDialog; import android.app.DatePickerDialog; import android.app.Dialog; import android.content.DialogInterface; import android.content.Intent; import android.database.Cursor; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.DatePicker; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.RadioButton; import android.widget.SimpleCursorAdapter; import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; public class HomeActivity extends Activity { private TextView mDateDisplay; private Button mPickDate; private int mYear; private int mMonth; private int mDay; private String sex; DBAdapter db; static final int DATE_DIALOG_ID = 0; CheckBox chk1, chk2, chk3, chk4; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // Date Picker // capture our View elements mDateDisplay = (TextView) findViewById(R.id.dateDisplay); // add a click listener to the button showDialog(DATE_DIALOG_ID); } }); // get the current date // display the current date (this method is below) updateDisplay(); // Database Conenction db = new DBAdapter(HomeActivity.this); db.open(); // Populating the City Spinner startManagingCursor(cities); // create an array to specify which fields we want to display // create an array of the display item we want to bind our data to int[] to = new int[] { android.R.id.text1 }; Spinner cityList = (Spinner) this.findViewById(R.id.citySpiner); SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, cities, from, to); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); cityList.setAdapter(adapter); // On Click Save // Get the name EditText Fname = (EditText) findViewById(R.id.FirstName); EditText Lname = (EditText) findViewById(R.id.LastName); // Get Date of birth .getText(); // Get the Gender RadioButton rbM = (RadioButton) findViewById(R.id.rbMale); if (rbM.isChecked()) { sex = "Male"; } else { sex = "Female"; } // Get the City Spinner getCity = (Spinner) findViewById(R.id.citySpiner); if (cc != null) { cityName = cc.getString(cc.getColumnIndex(db.KEY_NAME)); } Long idUser, idHobby, idUsersHobbies; db.open(); // Inseret data into User Table int city_id = db.find_city_id(cityName); idUser = db.insertINuser(first_name, last_name, sex, DoB, city_id); int uid = idUser.intValue(); // Insert data into user_hobby table chk1 = (CheckBox) findViewById(R.id.cbDance); chk2 = (CheckBox) findViewById(R.id.cbSing); chk3 = (CheckBox) findViewById(R.id.cbCycle); chk4 = (CheckBox) findViewById(R.id.cbSwim); if (chk1.isChecked()) { idUsersHobbies = db.insertUers_Hobbies(uid, 1); } if (chk2.isChecked()) { idUsersHobbies = db.insertUers_Hobbies(uid, 2); } if (chk3.isChecked()) { idUsersHobbies = db.insertUers_Hobbies(uid, 3); } if (chk4.isChecked()) { idUsersHobbies = db.insertUers_Hobbies(uid, 4); } alertboxNeutral("Success", "Saved.", "Okay"); } }); db.close(); } AlertDialog.Builder alertbox = new AlertDialog.Builder( HomeActivity.this); alertbox.setTitle(title); alertbox.setMessage(message); alertbox.setPositiveButton(positive, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { Intent i = new Intent(HomeActivity.this, HomeActivity.class); startActivity(i); } }); alertbox.show(); } LinearLayout layout = (LinearLayout) findViewById(R.id.Llayout); final CheckBox chk = new CheckBox(HomeActivity.this); // Creating // checkbox // objects..... chk.setText(task); layout.addView(chk); chk.setVisibility(5); } }); } @Override MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main, menu); return true; } @Override switch (item.getItemId()) { case R.id.list_users: Intent i = new Intent(this, ListUsersActivity.class); startActivity(i); break; case R.id.add_city: Intent j = new Intent(this, AddCityActivity.class); startActivity(j); break; case R.id.exit: Intent k = new Intent(this, HomeActivity.class); startActivity(k); break; } return true; } // Date Picker Methods // the call back received when the user "sets" the date in the dialog private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() { public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { mYear = year; mMonth = monthOfYear; mDay = dayOfMonth; updateDisplay(); } }; private void updateDisplay() { mDateDisplay.setText(new StringBuilder() // Month is 0 based so add 1 .append(mMonth + 1).append("-").append(mDay).append("-") .append(mYear).append(" ")); } switch (id) { case DATE_DIALOG_ID: return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay); } return null; } } AddCityActivity ---------------- package com.v3.userform; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; public class AddCityActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.add_city); EditText city_name = (EditText) findViewById(R.id.cityname); if (cityName.equals("")) { alertbox("Error", "Please Enter the City Name", "Back", null); } else { // Database Connection DBAdapter db = new DBAdapter(AddCityActivity.this); db.open(); if (db.checkCityName(cityName).equals(true)) { alertboxNeutral("Error", "City Already exits.", "Okay", "Add Another"); } else { long cityID = db.insertCity(cityName); if (cityID != -1) { alertboxNeutral("Success", "City was added.", "Okay", "Add Another"); } else { alertbox("Error", "Couldnt Insert. please try", "Back", null); } } db.close(); } } }); } AlertDialog.Builder alertbox = new AlertDialog.Builder( AddCityActivity.this); alertbox.setTitle(title); alertbox.setMessage(message); alertbox.setPositiveButton(positive, null); alertbox.show(); } AlertDialog.Builder alertbox = new AlertDialog.Builder( AddCityActivity.this); alertbox.setTitle(title); alertbox.setMessage(message); alertbox.setPositiveButton(positive, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { Intent i = new Intent(AddCityActivity.this, HomeActivity.class); startActivity(i); } }); alertbox.setNeutralButton(neutral, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { EditText ed = (EditText) findViewById(R.id.cityname); ed.setText(""); } }); alertbox.show(); } } ListUsersActivity ----------------- package com.v3.userform; import android.app.ListActivity; import android.content.Intent; import android.database.Cursor; import android.os.Bundle; import android.widget.ListAdapter; import android.widget.ListView; import android.widget.SimpleCursorAdapter; import android.view.View; public class ListUsersActivity extends ListActivity { Cursor c; DBAdapter db; static int uid; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.userlist); db = new DBAdapter(ListUsersActivity.this); db.open(); c = db.listUser(); startManagingCursor(c); // String[] uid = new String[] { DBAdapter.ID }; } int[] t = new int[] { android.R.id.text1 }; ListAdapter adapter = new SimpleCursorAdapter(ListUsersActivity.this, android.R.layout.simple_list_item_1, c, users, t); // Bind to our new adapter. setListAdapter(adapter); } @Override super.onListItemClick(l, v, position, id); // Get the item that was clicked if (cc != null) { fName = cc.getString(cc.getColumnIndex(db.KEY_FNAME)); } Intent intent = new Intent(this, DetailUserActivity.class); startActivity(intent); } } DetailUserActivity ------------------- package com.v3.userform; import android.os.Bundle; import android.widget.TextView; import android.app.Activity; import android.database.Cursor; public class DetailUserActivity extends Activity { TextView tv1, tv2, tv3; Cursor cr1, cr2, cr3; int cityID; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.detailuser); tv1 = (TextView) findViewById(R.id.txtVwUser); tv2 = (TextView) findViewById(R.id.txtVwCity); tv3 = (TextView) findViewById(R.id.txtVwHobby); tv1.setTextSize(20); tv2.setTextSize(20); tv3.setTextSize(20); int uid = ListUsersActivity.uid; DBAdapter db = new DBAdapter(DetailUserActivity.this); db.open(); cr1 = db.getUsersData(uid); if (cr1.moveToFirst()) { do { tv1.setText("User ID :" + cr1.getString(0) + "\n" + "First Name :" + cr1.getString(1) + "\n" + "Last Name :" + cr1.getString(2) + "\n" + "Sex :" + cr1.getString(3) + "\n" + "DOB :" + cr1.getString(4)); } while (cr1.moveToNext()); } cr2 = db.find_city_name(cityID); if (cr2.moveToFirst()) { do { tv2.setText("City :" + cr2.getString(1)); } while (cr2.moveToNext()); } cr3 = db.getUserHobbies(uid); if (cr3.moveToFirst()) { do { hobby = "Dancing "; } hobby = hobby + "Singing "; } hobby = hobby + "Cycling "; } hobby = hobby + "Swiming "; } } while (cr3.moveToNext()); } tv3.setText("Hobbies :" + hobby); } } Under layout---> ----------------- main.xml ---------- <?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="fill_parent"> <LinearLayout android:orientation="vertical" android:layout_height="wrap_content" android:layout_width="wrap_content"> <TextView android:text="@string/UserFormWelcome" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="20px" android:gravity="center" /> <TextView android:text="@string/name" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textStyle="bold" android:paddingTop="20px" android:paddingLeft="10px" /> <TableLayout android:layout_height="wrap_content" android:layout_width="wrap_content"> <TableRow android:layout_height="wrap_content" android:layout_width="match_parent" android:paddingTop="20px"> <TextView android:text="@string/firstname" android:layout_width="fill_parent" android:layout_height="wrap_content" android:width="100px" android:paddingLeft="10px" /> <EditText android:id="@+id/FirstName" android:width="200px" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </TableRow> <TableRow android:layout_height="wrap_content" android:layout_width="match_parent"> <TextView android:text="@string/lastname" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingLeft="10px" /> <EditText android:id="@+id/LastName" android:width="200px" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </TableRow> </TableLayout> <TextView android:text="@string/dob" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textStyle="bold" android:paddingTop="20px" android:paddingLeft="10px" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:paddingTop="20px" android:paddingLeft="10px"> <TextView android:id="@+id/dateDisplay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="ex: 8-4-1986" /> <Button android:id="@+id/pickDate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Change the date" android:layout_marginTop="10px" /> </LinearLayout> <LinearLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="10px"> <TextView android:text="@string/sex" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textStyle="bold" android:paddingTop="20px" /> <RadioGroup android:id="@+id/radioGroup1" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content"> <RadioButton android:text="Male" android:id="@+id/rbMale" android:layout_height="wrap_content" android:layout_width="wrap_content" android:paddingRight="20px" android:checked="true" /> <RadioButton android:text="Female" android:id="@+id/rbFemale" android:layout_height="wrap_content" android:layout_width="wrap_content" /> </RadioGroup> </LinearLayout> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingLeft="10px"> <TextView android:text="@string/city" android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textStyle="bold" android:paddingTop="20px" android:paddingBottom="10px" /> <Spinner android:id="@+id/citySpiner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:prompt="@string/city"> </Spinner> </LinearLayout> <LinearLayout android:orientation="vertical" android:id="@+id/Llayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingLeft="10px"> <TextView android:text="@string/hobby" android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textStyle="bold" android:paddingTop="20px" android:paddingBottom="10px" /> <TableLayout android:layout_height="wrap_content" android:layout_width="wrap_content"> <TableRow android:layout_height="wrap_content" android:layout_width="match_parent"> <CheckBox android:text="@string/dance" android:id="@+id/cbDance" android:layout_width="wrap_content" android:layout_height="wrap_content" android:width="125px" /> <CheckBox android:text="@string/sing" android:id="@+id/cbSing" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </TableRow> <TableRow android:layout_height="wrap_content" android:layout_width="match_parent"> <CheckBox android:text="@string/cycle" android:id="@+id/cbCycle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:width="125px" /> <CheckBox android:text="@string/swim" android:id="@+id/cbSwim" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </TableRow> </TableLayout> </LinearLayout> <Button android:text="@string/save" android:id="@+id/btnSave" android:layout_width="wrap_content" android:layout_height="wrap_content" android:width="80px" android:layout_marginTop="20px" android:layout_marginBottom="20px" /> </LinearLayout> </ScrollView> add_city.xml ------------- <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_height="wrap_content" android:layout_width="fill_parent"> <TextView android:text="@string/addcity" android:layout_width="fill_parent" android:layout_height="wrap_content" android:width="100px" android:paddingTop="10px" android:textSize="20px"/> <EditText android:id="@+id/cityname" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingLeft="10px" android:paddingRight="10px" /> <Button android:text="@string/save" android:id="@+id/btnSave" android:layout_width="wrap_content" android:layout_height="wrap_content" android:width="80px" android:layout_marginTop="10px"/> </LinearLayout> userlist.xml ------------- <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_height="wrap_content" android:layout_width="fill_parent"> <ListView android:id="@+id/android:list" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#00FF00" android:layout_weight="1" android:drawSelectorOnTop="false" /> </LinearLayout> detailuser.xml -------------- <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_height="wrap_content" android:layout_width="fill_parent" android:background="#00FF00"> <TextView android:text="TextView" android:id="@+id/txtVwUser" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:text="" android:id="@+id/txtVwCity" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:text="" android:id="@+id/txtVwHobby" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> //create a folder named as menu in res and there write the following xml file main.xml --------- <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/list_users" android:title="List Users" /> <item android:id="@+id/add_city" android:title="Add City" /> <item android:id="@+id/exit" android:title="Exit" /> </menu> //under values folder modify strings.xml <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, HomeActivity!</string> <string name="app_name">UserForm</string> <string name="UserFormWelcome">User Registration Form</string> <string name="firstname">First Name</string> <string name="lastname">Last Name</string> <string name="dob">Date of Birth:</string> <string name="month">Month:</string> <string name="date">Date:</string> <string name="year">Year:</string> <string name="sex">Sex:</string> <string name="city">Choose your City:</string> <string name="hobby">Choose your Hobbies:</string> <string name="dance">Dancing</string> <string name="swim">Swimming</string> <string name="sing">Singing</string> <string name="cycle">Cycling</string> <string name="save">Save</string> <string name="addcity">Add a City:</string> </resources> AndroidManifest.xml ------------------- <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.v3.userform" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".HomeActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".AddCityActivity" android:label="@string/app_name"> </activity> <activity android:name=".ListUsersActivity" android:label="@string/app_name"> </activity> <activity android:name=".DetailUserActivity" android:label="@string/app_name"> </activity> </application> <uses-sdk android:minSdkVersion="8" /> </manifest>
You need to login to post a comment.
