برنامه نویسی اندروید: آموزش پایگاه داده SQLite (قسمت سوم)

برنامه نویسی اندروید: آموزش پایگاه داده SQLite (قسمت سوم)

 با قسمت سوم آموزش ایجاد پایگاه داده اندروید در خدمت شما عزیزان هستیم در قسمت اول پایگاه داده sqlite را معرفی کردیم در قسمت دوم یک نمونه مثال پایگاه داده دفترچه تلفن در اندروید ایجاد کردیم، در این مقاله ادامه کدها و نحوه اجرای برنامه را مشاهده می کنیم.

کدهای فایل DBHelper.java در زیر آمده است:

package com.example.addressbook;

 

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Hashtable;

import android.content.ContentValues;

import android.content.Context;

import android.database.Cursor;

import android.database.DatabaseUtils;

import android.database.sqlite.SQLiteOpenHelper;

import android.database.sqlite.SQLiteDatabase;

 

public class DBHelper extends SQLiteOpenHelper {

 

   public static final String DATABASE_NAME = "MyDBName.db";

   public static final String CONTACTS_TABLE_NAME = "contacts";

   public static final String CONTACTS_COLUMN_ID = "id";

   public static final String CONTACTS_COLUMN_NAME = "name";

   public static final String CONTACTS_COLUMN_EMAIL = "email";

   public static final String CONTACTS_COLUMN_STREET = "street";

   public static final String CONTACTS_COLUMN_CITY = "place";

   public static final String CONTACTS_COLUMN_PHONE = "phone";

   private HashMap hp;

 

   public DBHelper(Context context)

   {

      super(context, DATABASE_NAME , null, 1);

   }

 

   @Override

   public void onCreate(SQLiteDatabase db) {

      // TODO Auto-generated method stub

      db.execSQL(

      "create table contacts " +

      "(id integer primary key, name text,phone text,email text, street text,place text)"

      );

   }

 

   @Override

   public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

      // TODO Auto-generated method stub

      db.execSQL("DROP TABLE IF EXISTS contacts");

      onCreate(db);

   }

 

   public boolean insertContact  (String name, String phone, String email, String street,String place)

   {

      SQLiteDatabase db = this.getWritableDatabase();

      ContentValues contentValues = new ContentValues();

      contentValues.put("name", name);

      contentValues.put("phone", phone);

      contentValues.put("email", email);     

      contentValues.put("street", street);

      contentValues.put("place", place);

      db.insert("contacts", null, contentValues);

      return true;

   }

  

   public Cursor getData(int id){

      SQLiteDatabase db = this.getReadableDatabase();

      Cursor res =  db.rawQuery( "select * from contacts where id="+id+"", null );

      return res;

   }

  

   public int numberOfRows(){

      SQLiteDatabase db = this.getReadableDatabase();

      int numRows = (int) DatabaseUtils.queryNumEntries(db, CONTACTS_TABLE_NAME);

      return numRows;

   }

  

   public boolean updateContact (Integer id, String name, String phone, String email, String street,String place)

   {

      SQLiteDatabase db = this.getWritableDatabase();

      ContentValues contentValues = new ContentValues();

      contentValues.put("name", name);

      contentValues.put("phone", phone);

      contentValues.put("email", email);

      contentValues.put("street", street);

      contentValues.put("place", place);

      db.update("contacts", contentValues, "id = ? ", new String[] { Integer.toString(id) } );

      return true;

   }

 

   public Integer deleteContact (Integer id)

   {

      SQLiteDatabase db = this.getWritableDatabase();

      return db.delete("contacts",

      "id = ? ",

      new String[] { Integer.toString(id) });

   }

  

   public ArrayList<String> getAllCotacts()

   {

      ArrayList<String> array_list = new ArrayList<String>();

     

      //hp = new HashMap();

      SQLiteDatabase db = this.getReadableDatabase();

      Cursor res =  db.rawQuery( "select * from contacts", null );

      res.moveToFirst();

     

      while(res.isAfterLast() == false){

         array_list.add(res.getString(res.getColumnIndex(CONTACTS_COLUMN_NAME)));

         res.moveToNext();

      }

   return array_list;

   }

}

 

محتوای مربوط به res/layout/activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"

    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"

    android:paddingRight="@dimen/activity_horizontal_margin"

    android:paddingTop="@dimen/activity_vertical_margin"

    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

 

    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:id="@+id/textView"

        android:layout_alignParentTop="true"

        android:layout_centerHorizontal="true"

        android:textSize="30dp"

        android:text="Data Base" />

 

    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="Tutorials Point"

        android:id="@+id/textView2"

        android:layout_below="@+id/textView"

        android:layout_centerHorizontal="true"

        android:textSize="35dp"

        android:textColor="#ff16ff01" />

 

    <ImageView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:id="@+id/imageView"

        android:layout_below="@+id/textView2"

        android:layout_centerHorizontal="true"

        android:src="@drawable/logo"/>

 

    <ScrollView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:id="@+id/scrollView"

        android:layout_below="@+id/imageView"

        android:layout_alignParentLeft="true"

        android:layout_alignParentStart="true"

        android:layout_alignParentBottom="true"

        android:layout_alignParentRight="true"

        android:layout_alignParentEnd="true">

       

    <ListView

        android:id="@+id/listView1"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_centerHorizontal="true"

        android:layout_centerVertical="true" >

    </ListView>

    </ScrollView>

 

</RelativeLayout>;

 

محتوای مربوط به res/layout/activity_display_contact.xml

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"

   xmlns:tools="http://schemas.android.com/tools"

      android:id="@+id/scrollView1"

      android:layout_width="match_parent"

      android:layout_height="wrap_content"

      tools:context=".DisplayContact" >

 

<RelativeLayout

   android:layout_width="match_parent"

   android:layout_height="370dp"

   android:paddingBottom="@dimen/activity_vertical_margin"

   android:paddingLeft="@dimen/activity_horizontal_margin"

   android:paddingRight="@dimen/activity_horizontal_margin"

   android:paddingTop="@dimen/activity_vertical_margin">

 

   <EditText

      android:id="@+id/editTextName"

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:layout_alignParentLeft="true"

      android:layout_marginTop="5dp"

      android:layout_marginLeft="82dp"

      android:ems="10"

      android:inputType="text" >

   </EditText>

 

   <EditText

      android:id="@+id/editTextEmail"

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:layout_alignLeft="@+id/editTextStreet"

      android:layout_below="@+id/editTextStreet"

      android:layout_marginTop="22dp"

      android:ems="10"

      android:inputType="textEmailAddress" />

 

   <TextView

      android:id="@+id/textView1"

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:layout_alignBottom="@+id/editTextName"

      android:layout_alignParentLeft="true"

      android:text="@string/name"

      android:textAppearance="?android:attr/textAppearanceMedium" />

 

   <Button

      android:id="@+id/button1"

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:layout_alignLeft="@+id/editTextCity"

      android:layout_alignParentBottom="true"

      android:layout_marginBottom="28dp"

      android:onClick="run"

      android:text="@string/save" />

 

   <TextView

      android:id="@+id/textView2"

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:layout_alignBottom="@+id/editTextEmail"

      android:layout_alignLeft="@+id/textView1"

      android:text="@string/email"

      android:textAppearance="?android:attr/textAppearanceMedium" />

 

   <TextView

      android:id="@+id/textView5"

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:layout_alignBottom="@+id/editTextPhone"

      android:layout_alignLeft="@+id/textView1"

      android:text="@string/phone"

      android:textAppearance="?android:attr/textAppearanceMedium" />

 

   <TextView

      android:id="@+id/textView4"

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:layout_above="@+id/editTextEmail"

      android:layout_alignLeft="@+id/textView5"

      android:text="@string/street"

      android:textAppearance="?android:attr/textAppearanceMedium" />

 

   <EditText

      android:id="@+id/editTextCity"

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:layout_alignRight="@+id/editTextName"

      android:layout_below="@+id/editTextEmail"

      android:layout_marginTop="30dp"

      android:ems="10"

      android:inputType="text" />

 

   <TextView

      android:id="@+id/textView3"

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:layout_alignBaseline="@+id/editTextCity"

      android:layout_alignBottom="@+id/editTextCity"

      android:layout_alignParentLeft="true"

      android:layout_toLeftOf="@+id/editTextEmail"

      android:text="@string/country"

      android:textAppearance="?android:attr/textAppearanceMedium" />

 

   <EditText

      android:id="@+id/editTextStreet"

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:layout_alignLeft="@+id/editTextName"

      android:layout_below="@+id/editTextPhone"

      android:ems="10"

      android:inputType="text" >

 

      <requestFocus />

   </EditText>

 

   <EditText

      android:id="@+id/editTextPhone"

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:layout_alignLeft="@+id/editTextStreet"

      android:layout_below="@+id/editTextName"

      android:ems="10"

      android:inputType="phone|text" />

 

</RelativeLayout>

</ScrollView>

 

محتوای مربوط به res/value/string.xml

<?xml version="1.0" encoding="utf-8"?>

<resources>

   <string name="app_name">Address Book</string>

   <string name="action_settings">Settings</string>

   <string name="hello_world">Hello world!</string>

   <string name="Add_New">Add New</string>

   <string name="edit">Edit Contact</string>

   <string name="delete">Delete Contact</string>

   <string name="title_activity_display_contact">DisplayContact</string>

   <string name="name">Name</string>

   <string name="phone">Phone</string>

   <string name="email">Email</string>

   <string name="street">Street</string>

   <string name="country">City/State/Zip</string>

   <string name="save">Save Contact</string>

   <string name="deleteContact">Are you sure, you want to delete it.</string>

   <string name="yes">Yes</string>

   <string name="no">No</string>

</resources>

 

محتوای مربوط به فایل res/menu/main_menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

   <item

      android:id="@+id/Edit_Contact"

      android:orderInCategory="100"

      android:title="@string/edit"/>

  

   <item

      android:id="@+id/Delete_Contact"

      android:orderInCategory="100"

      android:title="@string/delete"/>

 

</menu>

 

فایل AndroidManifest.xml  که بصورت پیش فرض در پروژه قرار می گیرد.

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

   package="com.example.sairamkrishna.myapplication" >

  

   <application

      android:allowBackup="true"

      android:icon="@mipmap/ic_launcher"

      android:label="@string/app_name"

      android:theme="@style/AppTheme" >

     

      <activity

         android:name=".MainActivity"

         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=".DisplayContact"/>

     

   </application>

</manifest>

 

حال برنامه را روی موبایل  اجرا می کنیم

برای اجرا برنامه پروژه را باز کرده و روی دکمه Run کلیک کنید قبل از شروع، اندروید استودیو از شما می خواهد دستگاهی که می خواهید برنامه روی آن اجرا شود را انتخاب کنید در این قسمت موبایل را انتخاب کنید.

 

 برنامه روی گوشی نمایش داده می شود که در حال حاضر منوهای آن بصورت اختیاری است و در دستگاههای مختلف بصورت متفاوت نمایش داده می شود.

می توانید گزینه Add New را بزنید و مخاطب جدیدی را در دستگاه ذخیره کنید.

  فیلدهای موردنیاز را پر کنید و سپس ذخیره را بزنید

 

مخاطب جدید ذخیره می شود که با زدن روی نام مخاطب می توانید آن را ویرایش یا حذف کنید.

 

با طی مراحل زیر می توانید مخاطب را به راحتی حذف کنید.

 

برای اینکه ببینید برنامه در کجا ذخیره شدده است اندروید استودیو را بازکنید و موبایل را به آن متصل کنید. با رفتن از مسیر زیر برنامه را پیدا می کنید.

Tools/android device monitor

در ادامه به پوشه زیر بروید:

Data/data<your.package.name>/database<database-name>

 

بعدی

1244

بلاگ های مرتبط

ثبت نظر جدید

نظرات کاربران

آیا سوالی دارید ؟

با تلگرام 09108454545 و یا با ایمیل آدرس ایمیل سروش پرداز تماس برقرار کنید.

برای تماس با مشاورین میتوانید با شماره های 02186085365 و 02186084238 و 02186083746 تماس حاصل فرمایید همچنین برای تسهیل در ارتباطات میتوانید با تلگرام شرکت به شماره 09108454545 تماس بگیرید.


لوگو ساماندهی سروش پرداز